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对话框下的菜单使用setCheck

  • 2010年11月30日 16:41
  • 3KB
  • 下载

MFC对话框的使用

  • 2012年12月04日 20:14
  • 6.57MB
  • 下载

在MFC对话框中显示图片的三种方法(有两种使用OpenCv)

最近写了一个用对话框显示图片的程序,这里将学习到的东西整理一下: 编程环境:VC6.0+OpenCv1.0 准备工作:用VC6.0生成一个对话框外壳(全被采用默认设置),然后在对话框中添加...

MFC对话框工程中UpdateData的使用

  • 2015年01月26日 15:46
  • 17.97MB
  • 下载

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

最近在做一个与浏览器相关的MFC项目,用户要求使用IE和谷歌双内核。对于IE内核可以直接使用MFC中的ACTIVEX控件,但是对于谷歌浏览器内核却并没有这么现成的控件可以使用。原来是想要自己编译Web...

MFC的对话框中使用OpenGL绘图

  • 2014年03月18日 23:58
  • 132KB
  • 下载

MFC中属性表单和向导对话框的使用

每次在使用MFC创建一个框架时,需要一步步选择自己的程序的外观,基本功能等选项,最后MFC会生成一个基本的程序框架,这个就是向导对话框;而属性表单则是另外一种对话框,表单上有多个属性页,每点击某一页,...
  • lanuage
  • lanuage
  • 2015年09月23日 22:01
  • 1281
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MFC中对话框的使用
举报原因:
原因补充:

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