非模态对话框与通用对话框——Visual C++教程

需积分: 16 1 下载量 119 浏览量 更新于2024-07-14 收藏 301KB PPT 举报
"本资源是关于Visual C++面向对象编程的教程,重点讲解了列表视控件的属性以及对话框的高级编程,包括模态和非模态对话框的使用,以及通用对话框的介绍。" 在Visual C++面向对象编程中,列表视控件是一种常用的数据展示工具。它的属性可以定制以满足不同的显示需求。以下是关于列表视控件属性的详细解释: 1. **View属性**:这个属性决定了列表视控件在程序运行后的初始显示方式。四种可能的设置包括: - Icon(大图标):显示大图标的列表项。 - Small Icon(小图标):显示小图标的列表项。 - List(列表):以单列文本形式展示数据。 - Report(报表):类似于表格,包含多列数据,每列有自己的标题。 2. **Single selection**:此属性设定是否允许用户一次选择多个列表项。若设置为Single selection,则用户只能同时选中一个项。 3. **Auto arrange**:此选项用于在Icon和Small Icon模式下自动排列列表项,以保持界面整洁。 4. **Edit Labels**:如果启用此功能,用户就可以编辑列表项的主项(第0列)的文本,这通常需要编写处理LVN_ENDLABELEDIT控件通知消息的函数。 5. **No column header**:取消列标题,这样在报表视图中,列表将不显示列头。 接下来,我们讨论对话框的两种主要类型:模态和非模态对话框。 模态对话框在打开后,用户必须先关闭它才能继续与应用程序的其他部分交互。模态对话框有自己的消息循环,因此其窗口内的消息处理独立于主窗口。创建模态对话框时,系统会自动管理内存,关闭时由CDialog::EndDialog()函数销毁。 非模态对话框则不同,用户可以在不关闭对话框的情况下与其他窗口交互。非模态对话框需通过new运算符手动创建,用完后用delete删除。它们使用Create()函数显示,不会启动新的消息循环,而是与主程序共享同一个消息循环。这意味着非模态对话框不会阻止用户与程序的其他部分进行交互。 通用对话框是Windows提供的预定义对话框,如文件打开或保存对话框,它们已经被封装在Commdlg.dll库中。在MFC中,这些通用对话框通过CCommonDialog类及其派生类(如CFileDialog、CDirectoryDialog等)进行访问,简化了编程工作,并允许一定程度的自定义。 理解列表视控件的属性和对话框的使用是进行Visual C++高级编程的关键。正确配置这些元素可以极大地提升用户体验并优化应用程序的交互流程。