VC++深入详解读书笔记-第七章对话框
1.在MFC中,所有的控件类都是由CWnd类派生来的,因此,控件实际上也是窗口。
2.
3.对话框的种类
模态对话框
模态对话框是指当其显示时,程序会暂时执行,直到关闭这个模态对话框后,才能继续执行程序中其他任务。
非模态对话框
当非模态对话框显示时,允许转而执行程序中其他任务,而不用关闭这个对话框。
4.在MFC中,对资源的操作通常都是通过一个与资源相关的类来完成的。
5.模态对话框的创建
void CMybobleView::OnDialog() { CTestDlg dlg; dlg.DoModal(); }
6.非模态对话框的创建
(1)需要利用CDialog类的Create成员函数来创建
BOOL Create(LPCTSTR lpszTemplateName,CWnd* pParentWnd = NULL); BOOL Create(UINT nIDTemplate,CWnd* pParentWnd = NULL);
(2)显示对话框
dlg.ShowWindow(SW_SHOW);
(3)dlg变量应为类的成员变量,而不能是局部变量。
7.点击对话框上的【OK】按钮时,对话框都会消失。对模态对话框而言,此时对话框窗口对象被销毁了。而对非模态对话框来说,对话框窗口对象并未被销毁,只是隐藏起来了。单击OK按钮会调用基类(CDialog)的OnOK函数,这是一个虚函数。该函数会调用EndDialog函数,这个函数用于终止模态对话框,而对于非模态对话框,这个函数使对话框窗口不可见,并不销毁它。因此,对非模态对话框来说,对OK按钮,必须重写基类的OnOK函数,并在重写的函数中调用DestroyWindow函数,同时注意不要调用基类的OnOK函数。OnCancel函数类似。
8.为了使一个静态文本控件能够响应鼠标单击消息,那么需要进行两个特殊的步骤:第一步,改变它的ID;第二步,在它的属性对话框选中Notify选项。