对话框

3 篇文章 0 订阅
3 篇文章 0 订阅

模态对话框:
CModalDlg dlg;
dlg.DoModal();

非模态对话框:
CModalessDlg* pdlg;
pdlg =new CModalessDlg();
pdlg->Create(IDD_MODALESS);
pdlg->ShowWindow(SW_SHOW);
还需要调用:响应函数:
使用类向导响应类 CModalessDlg 的消息 WM_DESTROY,函数名称为
OnDestroy,
CDialog::OnDestroy();
//删除表示对话框的 C++对象
delete this;

  创建方法不同。模态对话框一般通过声明对话框类对象,然后,直接调用 DoModal即可创建成功;而非模态对话框一般通过 Create 函数创建。

销毁方法不同。
1. 当模态对话框创建函数 DoModal 返回时,对话框自动销毁;而销毁非态对话框时则要人工干预,一般调用函数 DestroyWindow。
2.
对“确定”、“取消”按钮的响应不同。对于模态对话框,则直接重载基类的版本即可,并且要求在重载的版本中调用基类的实现;而对于非模态对话框,则不可以调用基类的实现,因为基类的版本将调用 EndDialog,而此函数只适用于模态对话框。
3
消息的处理途径不同。模态对话框有自己的消息循环,而非模态对话框的消息要经过应用的消息队列。如果想把这些消息传送给对话框窗口过程,则必须更改消息队列。
4
对于默认的对话框模板,其 Visible 属性默认为空,这不会对创建模态对话框产生任何影响,因为在消息循环中将会对此作出处理,从而创建完毕后即是可见的;而对于非模态对话框,就有所不同,如果没有选中 Visible 的话,则创建对话框后,必须调用 ShowWindow 以便确保对话框可见。

对话框数据交换和验证:

公用对话框类列表:
在这里插入图片描述
颜色对话框的使用:

CColorDialog color;
if(color.DoModal()==IDOK)
{
CMainFrame* pMainFrm =(CMainFrame*)AfxGetMainWnd();
pMainFrm->m_color =color.GetColor();
}

字体对话框的使用:

文件对话框的使用:
CFileDialog 类
OnFileNameOK 选择“打开(或保存)”时对文件的校验时调用
OnLBSelChangedNotify 文件列表框选择内容发生变化时调用
OnlnitDone 文件对话初始化完成时调用
OnFileNameChange 选择的文件发生变化时调用
OnFolderChange 选择的目录发生变化时调用
OnTypeChange 选择的文件类型发生变化时调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

myx1027

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值