没有合适的资源?快使用搜索试试~ 我知道了~
MFC属性表对话框的运行机制
1星 需积分: 10 2 下载量 122 浏览量
2014-03-06
21:15:07
上传
评论
收藏 28KB DOC 举报
温馨提示
试读
2页
VC++_MFC属性表对话框的运行机制
资源推荐
资源详情
资源评论
VC++ MFC 属性表对话框的运行机制
2008-07-01 19:09
属性表对话框的初始化包括框架对话框的初始化和页的初始化。页的初始化工
作可在 OnInitDialog 函数中进行,而框架对话框的初始化应该在 OnCreate
函数中完成。
根据 CPropertySheet::DoModal 返回的是 IDOK 还是 IDCANCEL,程序可
以判断出关闭对话框时按的是 OK 还是 Cancel 按钮,这与普通对话框是一样
的。
如果属性表对话框是模态对话框,在其底部会有 3 个按钮,依次为
OK、Cancel 和 Apply(应用)按钮,如果对话框是非模态的,则没有这些按
钮。OK 与 Cancel 按钮的意义与普通按钮没什么两样,Apply 按钮则是属性表
对话框所特有的。普通的模态对话框只有在用户按下了 OK 按钮返回后,对话
框的设置才能生效,而设计 Apply 的意图是让用户能在不关闭对话框的情况下
使对话框的设置立即生效。由此可见,Apply 按钮的作用是使用户在设置完数
据后,不必退出对话框,就可以反复进行设置,这在许多应用场合下是很有用
的。
为了对上述 3 个按钮作出响应,CPropertyPage 类提供了
OnOK,OnCancel 和 OnApply 函数,用户可覆盖这 3 个函数以完成所需的
工作。需要指出的是这 3 个函数并不是直接响应按钮的 BN_CLICKED 消息
的,但在按钮按下后它们是被间接调用。这些函数的说明如下:
1. Virtual void OnOK( ):在按下 OK 或 Apply 按钮后,该函数被调用。默
认的 OnOK 函数几乎什么也不干,像数据交换和关闭对话框这样的工作是在别
的地方完成的,这与普通对话框的 OnOK 函数是不同的:
2. Virtual void OnCancel( ):在按下 Cancel 按钮后,该函数将被调用。
默认的 OnCancel 函数也是几乎什么也不干;
3. Virtual BOOL OnApply( ):在按下 OK 或 Apply 按钮后,该函数将被调
用。默认的 OnApply 会调用 OnOK 函数。函数的返回值如果是 TRUE,则对
话框中的设置将生效,否则无效。
令人不解的是,MFC 并未考虑 CPropertySheet 类的按钮响应问题,不要指
望能通过 ClassWizard 来自动创建按钮的 BN_CLICKED 消息处理函数,通常
的按钮响应都是在 CPropertyPage 类完成的。
下面几个 CPropertyPage 类的成员函数也与属性表的运行机制相关。
Void SetModi4ed( BOOL bChanged = TRUE ):该函数用来设置修改标
志。若参数 bChanged 为 True,则表明对话框中的设置已改动,否则说明设
置未改动。该函数的一个主要用途是允许或禁止 Apply 按钮。在默认情况
资源评论
- 羊头军师2018-01-17不知道分享这个干啥。一个doc文档。说了些过时的东西。
zhuhuabao0125
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功