七.对话框
来源:互联网 发布:camron社交网络 编辑:程序博客网 时间:2024/04/29 14:40
1.模态与非模态对话框
模态对话框创建
CTestDlg dlg;
dlg.DoModal();
非模态对话框的创建
CTestDlg *pDlg =new CTestDlg();
pDlg->Create(IDD_DIALOG1,this);
pDlg->ShowWindow(SW_SHOW);
这里第一个参数是对话框资源的ID和或话框模板的名称。
第二个参数是对话框的父窗口。
这里需要注意以下几点
1. Create创建非模态对话框要用ShowWindow才会显示出来。
2. 这里用指针是因为要在堆上分配内存,在堆上分配内存是整个程序的生命周期一致的。这样做又会遇到一个问题,当这个函数体结速时,生命周期结束了,指针变量被销毁了。所指向的内存丢失了。
解决方法有两种:
一. 将指针变量声明为类的成员变量。在类的析构函数里,用delete函数释方指向的那块内存。
二. 在CTestDlg中重载PostNcDestory函数,释放this指针指向的内存,delete this;
3. 如果用的是局部变量,在函数结束时会销毁局部变量。CTestDlg 被销毁了当然不会显示出来。还有一种解决方法是声明为类的成员变量。这样生命周期跟类一致。
4. 为什以模态对话框的可以用局部变量呢?这是因为模态对话框的实现机制,在弹出对话框后,创建模态对话框的函数被中止了,模态对话框关闭后,才继续执行创建函数体其它部份。
5. 对于非模态对话框,如果有ID值为IDOK或IDCANCEL的按钮就必须重写OnOK和OnCancel函数,在重写的函数中调用DestoryWindow函数销毁销口。
- 七.对话框
- 七 对话框
- (孙鑫 七)对话框
- 教程七(对话框)
- Android 七种对话框使用
- (第四版中文版)[七]Windows 通用对话框--嵌套对话框
- JavaScript FAQ(七)——对话框
- 对话框控件访问的七种方式
- 对话框控件访问七种方式
- 对话框访问的七种方式
- 对话框控件的七种访问方式
- 对话框控件访问七种方式
- VC:对话框控件访问七种方式
- 七、对话框的创建、设置以及布局
- 对话框控件访问七种方式
- WebDriver拾级而上·之七 处理对话框alert\confirm\prompt
- WebDriver拾级而上·之七 处理对话框alert\confirm\prompt
- 总结对话框控件访问的七种方式
- 求一个整数的二进制中1的个数
- oracle 中的 indexof/lastindexof以及Lpad
- tomcate user role 配置
- 解决Ubuntu linux wubi 9.04安装时停止在“creating the virtual disks”
- vijos 1070
- 七.对话框
- 很无聊
- jpeg2rle发布
- PDM生产ORACLE数据库语言(SQL)报错
- ddddddddddddddddd
- POJ 1611 The Suspects
- 【转】WinFrom通过WebClient向Web服务器上传下载文件(带进度条)
- 游乐昌古佛岩
- 三个经典电话,帮你促进销售技巧