MFC中对话框的使用

原创 2006年05月17日 21:49:00

在单文档MFC应用程序中,创建一个对话框:
1、首先添加一个新的对话框资源,获得它的ID号。
2、为这个对话框资源新建一个对应的对话框类。
如何使用创建的对话框呢?
如果是模式对话框,对话框工作的时候应用程序会暂停。
首先先创建一个刚才创建的对话框类的对象,如dlg
然后调用它的成员函数DoModel()即可。
如果是非模式对话框,对话框工作的时候应用程序照常工作。
也要先创建一个对象,因为对话框工作的时候应用程序不会停下来,
所以这个对象的作用域不能是局域。否则看不到的。办法:创建一个堆,用new关键字。如  CDlg *pDlg=new CDlg;
然后 pDlg->Create(资源ID号,this);this指父窗口指针。
 pDlg->ShowWindow(SW_SHOW/*显示方式*/);
但这个指针是个局部变量。它生命周期结束后它所保存的地址就丢失了。可以将它改为成员变量,在析构函数里delete。
对于ID为IDOK的按钮,
关闭的时候,如果是非模式对话框,必须重载OnOK函数,调用销毁对话框函数,否则只是将对话框隐藏了,而没有销毁。
非模式对话框比较麻烦,还是用模式对话框吧。

每个控件都有一个自己的句柄,它就是控件的成员变量m_hWnd
获取对话框上控件以及控件的文本的方法有几种?
7种:
GetDlgItem()->Get(Set)WindowText()
GetDlgItemText()/SetDlgItemText()
GetDlgItemInt()/SetDlgItemInt()
将控件和整型变量相关联
将控件和控件变量相关联
SendMessage()
SendDlgItemMessage()

Z-次序
窗口的Z次序表明了重叠窗口堆中窗口的位置,这个窗口堆是按一个假想的轴定位的,这个轴就是从屏幕向外伸展的Z轴。Z次序最上面的窗口覆盖所有其它的窗口,Z次序最底层的窗口被所有其它的窗口覆盖。应用程序设置窗口在Z次序中的位置是通过把它放在一个给定窗口的后面,或是放在窗口堆的顶部或底部。
        Windows系统管理三个独立的Z次序——一个用于顶层窗口、一个用于兄弟窗口,还有一个是用于最顶层窗口。最顶层窗口覆盖所有其它非最顶层窗口,而不管它是不是活动窗口或是前台窗口。应用程序通过设置WS_EX_TOPMOST风格创建最顶层窗口。
        一般情况下,Windows系统把刚刚创建的窗口放在Z次序的顶部,用户可通过激活另外一个窗口来改变Z次序;Windows系统总是把活动的窗口放在Z次序的顶部,应用程序可用函数BringWindowToTop把一个窗口放置到Z次序的顶部。函数SetWindowPos和DeferWindowPos用来重排Z次序。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

MFC练习3:使用对话框与控件

现在我们来创建一个多文档工程,在其中加入一个口令对话框,以防止非法用户侵入。实现效果即为:出现一对话框要求用户输入口令,口令不正确显示错误并退出。若按下取消键,那也退出。如果正确,则进入程序。 Ⅰ、...

MFC对话框的使用

  • 2012-12-04 20:14
  • 6.57MB
  • 下载

MFC中颜色选择对话框的使用

MFC中CColorDialog类的使用 在MFC中,我们经常使用颜色对话框类CColorDialog。类CColorDialog支持在应用中使用颜色选择对话框。CColorDialog对象...

MFC对话框应用程序中谷歌CEF浏览器内核的使用

最近在做一个与浏览器相关的MFC项目,用户要求使用IE和谷歌双内核。对于IE内核可以直接使用MFC中的ACTIVEX控件,但是对于谷歌浏览器内核却并没有这么现成的控件可以使用。原来是想要自己编译Web...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)