先前讲了如何创建模态对话框,现在说说如何创建非模态对话框。
这里,无论是哪种方法,都借助了单文档程序,而且是通过菜单的方式来创建,于是消息的机制有点复杂,不过不影响学习。先来说说创建的过程吧。
MFC------对话框程序的创建:
先前一直 都是对话框程序,直接新建MFC程序,选择对话框程序,然后后面的一直选择OK就可以了,当然,如果不喜欢关于和3D的话可以去掉,我之前的程序都去掉了,这样可以使得程序精简,看起来比较轻松。
MFC-----单文档程序的创建:
选择的第一步就是单文档,后面也是一直点OK,不过个性化的选择还是看你个人。
讲解如何创建非模态对话框:
主要就是用Create函数来创建的,菜单的创建还是和前面一样,其实都和前面的模态对话框创建一样,注意的就是,函数在View下面的,然后要创建一个新类,派生自CDialog,不过觉得没有也一样,只用到指针而已,而且没有改写。
代码如下:
void CTest37View::OnDialog()
{
// TODO: Add your command handler code here
CDlg *pdlg = new CDlg;
pdlg->Create(IDD_DIALOG1,this); //创建一个非模态对话框
pdlg->ShowWindow(SW_SHOW);
}
其他的都一样,最后上个截图:
最后值得注意的几点:
1.非模态对话框中,不可以用CDialog类中的函数OnOK(),因为该函数调用的是EndDialog,而EndDialog该函数主要用于模态对话框,关闭非模态对话框的话要用DestoryWindow函数来实现。
2.在OnDialog函数中,必须使用指针来完成,因为只要指针申请的内存控件在子函数完成后还存在。。。。
posted on 2010-02-08 17:00
deercoder 阅读(1598)
评论(0) 编辑 收藏 引用