分享
 
 
 

CDialog

王朝百科·作者佚名  2010-03-12
窄屏简体版  字體: |||超大  

CDialog

CObject

└CCmdTarget

└CWnd

└CDialog

CDialog类是在屏幕上显示的对话框基类。对话框有两类:模态对话框和非模态对话框。模态对话框在应用继续进行之前必须关闭。非模态对话框允许用户执行另外的操作而不必取消或删除该对话框。

一个CDialog对象是对话框模板与一个CDialog派生类的组合。使用对话框编辑器创建对话框并存入资源之中,然后使用ClassWizard创建一个CDialog派生类。

同其它窗口一样,对话框从Windows 中获取信息。在对话框中你会对来自对话框控件的处理消息感兴趣,因为它说明了对话框是如何与用户交互的。ClassWizard观察对话框每个控件可能产生的消息,可以选择你所希望处理的消息。ClassWizard 将适当的消息映射器入口和消息处理成员函数加到一个新类中。你只需为成员函数编写应用的代码。

如果喜欢,在使用ClassWizard时可以编写自己的消息映射器入口和成员函数。

对于大多数普通对话框,可以向对话框派生类中添加成员变量以存储数据。数据是用户向对话框中输入的,或者为用户显示数据。ClassWizard观察对话框中与数据映射的控件并提示为每一控件创建一个成员变量。同时,为每一变量选择变量类型和取值范围。ClassWizard将成员变量加入对话框派生类中。

然后,ClassWizard写入成员函数与对话框控件之间的交换数据自动映射的数据。数据映射使函数可以为对话框控件提供适当的初始值。检索数据并对数据进行有效性检测。

要建立模态对话框,先使用构造程序为对话框派生类构造一个对象。然后调用DoModal创建对话框窗口及其控件。如果要建立非模态对话框,在构造程序中为对话框类调用Create即可。

还可使用DLGTEMPLATE数据结构在内存中建立模板,该结构在联机文档“Win32 SDK”中有描述。当构造了一个CDialog对象之后,调用CreateIndirect创建非模态对话框,或调用InitModalIndirect和DoModal来创建模态对话框。

ClassWizard在覆盖它为新对话框类加入的CWnd::DoDataExchange之后写入交换和有效性规则的数据映射。请参阅CWnd中的DoDataExchange成员函数。

程序和框架都通过调用CWnd::UpdateData间接调用DoDataExchange。当用户单击OK按钮关闭模态对话框时,框架调用UpdateData(如果单击了Cancel按钮,将不能获得数据)。OnInitDialog的缺省方式也是设置控件的初始值。为得到初始控件,通常要覆盖OnInitDialog。在所有对话框控件建立且在对话框显示之前,调用OnInitDialog。

在模态对话框与非模态对话框执行的任意时刻都可以调用CWnd::UpdateData。

如果要手工创建对话框,应为对话框派生类添加必需的成员变量,并添加已获得数据值的成员函数。

关于ClassWizard的更多信息,请参阅联机文档“Visual C++程序员指南”中的“使用 ClassWizard”。

在应用中调用CWinApp::SetDialogBkColor为对话框设置背景色。

当用户按下OK或Cancel按钮,或者调用EndDialog时,模态对话框自动关闭。

当实现一个非模态对话框时,总是覆盖OnCancel函数并从中调用DestroyWindows。不要调用CDialog::OnCancel基类。因为它会调用EndDialog,那会使对话框虽然存在但并不可视。模态对话框还应覆盖PostNcDestory以防止删除自身。模态对话框厂在框架中构造,不需要用PostNcDestory清除。

关于CDialog的更多信息,请参阅联机文档“Visual C++程序员指南”的“对话框主题”。

所需头文件:#include <afxwin.h>

CDialog类的成员

构造函数 CDialog 构造CDialog对象

初始化 Create 初始化CDialog对象。创建非模态对话框和附在其上的对话框控件

CreateIndirect 从内存中的对话框模板创建非模态对话框

InitModalIndirect 从内存中的对话框模板创建模态对话框。保存参数直到调用DoModal函数

操作 DoModal 调用模态对话框,使用后返回

MapDialogRect 将对话框的矩形单位转换为屏幕单位

NextDlgCtrl 在对话框中将焦点移到下一个对话框控件上

PrevDlgCtrl 在对话框中将焦点移到前一个对话框控件上

GotoDlgCtrl 在对话框中将焦点移到指定的对话框控件上

SetDefID 改变对话框的缺省按钮

GetDefID 获得对话框的缺省按钮

SetHelpID 为对话框设置上下文的help ID

EndDialog 关闭模态对话框

可覆盖的函数 OnInitDialog 覆盖该函数可改变对话框初始设置

OnSetFont 覆盖该函数可指定在对话框控件中输入文本时使用的字体

OnOK 覆盖该函数可在对话框中进行OK按钮操作。缺省值是关闭对话框,DoModal返回IDOK

OnCancel 覆盖该函数可在对话框中进行Cancel按钮操作或按ESC键。缺省值是关闭对话框,DoModal返回IDCANCEL

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有