模态和非模态对话框
在模态对话框有效期间,应用程序的其他窗口中的所有操作将都被挂起,直到该对话框被关闭。而非模态可使得焦点在对话框和应用程序中的其他窗口之间来回移动。
2)显示对话框
显示对话框的代码放在程序中的什么位置取决于应用程序本身。
a)显示对话框的代码
如果显示对话框的代码在菜单项的处理程序中,那么我们应该在哪一个类中实现该处理程序呢?视图类是处理线宽的候选类,但当前的线宽选项存储在文档中更切合实际,因此该处理程序应该放在CSketcherDoc类中。
在菜单项的Add Event Handler,我们可以创建对应于CSketcherDoc类中的此菜单项的COMMAND消息的处理程序。
void CSketcherDoc::OnPenwidth()
{
CPenDialog aDlg;
aDlg.DoModal()
}
b)关闭对话框的代码
void CPenDialog::OnOk()
{
CDialog::OnOK();
}
注意使用非模态对话框的时候,必须实现重写的OnOK()和OnCancel()函数。