View::CSample4_1View()
{
// TODO: add construction code here
m_pModallessDlg = NULL; //初始化指针
}
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·76·
3.创建和显示对话框
实例Sample4_1 中的非模态对话框通过选择菜单项打开,下面讲解如何实现此功能。
(1)首先创建打开非模态对话框的菜单项。
单击IDE 左侧工作区的“ResourceView”标签,展开Menu 节点,双击IDR_SAMPLETYPE,
打开IDR_SAMPLETYPE 菜单资源编辑界面。在IDE 右侧客户区展开顶层“查看”菜单,双
击虚线框,打开添加一个新的菜单项的对话框。在“ID”输入框中输入ID_MODALLESS,
在“Caption”输入框中输入“打开非模态对话框”,回车确认修改。
(2)为新建的菜单项添加消息处理函数。
在IDE 主菜单栏中依次选择菜单“View|ClassWizard”或者在开发环境的界面中直接使
用快捷键Ctrl+W,打开“ClassWizard”对话框。单击“Message Maps”选项卡,在“Class ncom”
下拉列表框中选择“CSample4_1View”,在“Object IDs”列表框中选择ID_MODALLESS,
在“Messages”列表框中选择COMMAND,单击“Add Function”按钮,在弹出的对话框中
单击“OK”按钮,就创建了名为OnModalless 的菜单项消息处理函数。
( 3 ) 单击“ Edit Function ” 按钮, 关闭“ ClassWizard ” 对话框, IDE 定位到
CSample4_1View::OnModalless()函数,编辑CSample4_1View::OnModalless()函数,代码如下:
void CSample4_1View::OnModalless()
{
// TODO: Add your command handler code here
//若指针为NULL,则对话框未被创建,需要动态创建
if (m_pModallessDlg==NULL)
{
//创建非模态对话对话框
m_pModallessDlg=new CDialogModalless();
m_pModallessDlg->Create(IDD_MODALLESS);
}
//显示非模态对话框
m_pModallessDlg->ShowWindow(TRUE);
}
4.退出和销毁对话框
当程序退出时需要销毁非模态对话框,在视图类CSample4_1View 的析构函数中删除动
态创建的非模态对话框对象即可完成非模态对话框的销毁。
在IDE 左侧工作区单击“ClassView”选项卡,展开CSample4_1V