关闭

MFC中对话框的使用

标签: mfcwindows工作活动delete文档
1882人阅读 评论(0) 收藏 举报
分类:

在单文档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次序。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:68891次
    • 积分:1121
    • 等级:
    • 排名:千里之外
    • 原创:34篇
    • 转载:15篇
    • 译文:0篇
    • 评论:23条
    最新评论