MFC中对话框的使用

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值