模式对话框与无模式对话框
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验内容
创建一个SDI应用程序项目MyTest,为其添加一 个模式对话框,用于输入学号和姓名,单击“确 定”按钮后用消息框将学号和姓名显示出来,并 在消息框上显示出“信息”的图标;再为其添加 一个无模式对话框,显示“你好!”。
操作步骤如下:
Байду номын сангаас
一、建立工程。
二、添加模式对话框资源及对应的类。
三、增加无模式对话框资源及对应的类 。
DoModal()函数的返回值是一个整数,若对话框不 能创建,它将返回-1。DoModal()函数的返回值将 作为一个参数传递给CDialog::EndDialog函数。 CDialog::EndDialog函数用于关闭模式对话框。 当用户单击OK按扭时,将调用OnOK()函数,此函 数保存对话框中的数据修改并且使它们生效,然后 调用EndDialog函数关闭对话框。当用户单击 Cancel按扭时,将调用OnCancel()函数,此函数不 保存对话框中的数据修改,直接调用EndDialog函 数关闭对话框。
2.
使用CWnd::DestroyWindow() 函数来关闭无 模式对话框。 无模式对话框的关闭也是由用户单击OK或 Cancel 按 扭 完 成 的 , 这 将 分 别 导 致 调 用 OnOK()函数或OnCancel()函数,与模式对话 框不同,程序员必须分别重载这二个函数, 并且在其中调用CWnd::DestroyWindow()函 数来关闭对话框。注意不能使用EndDialog() 函数来关闭一个模式对话框,那样将导致对 话框不可见但没有真正被销毁。
四、在主菜单中添加一个菜单项,并添加两 个菜单项资源,用于显示模式对话框和无 模式对话框。 五、在菜单项的消息处理函数中激活对话 框。
2.无模式对话框的创建、显示与关闭
1.
无模式对话框比模式对话框要复杂得多, 因为无模式对话框的创建、显示和管理都 要由程序员完成。 创建无模式对话框也分为二步: 构 造 一 个 CDialog 对 象 , 然 后 调 用 Dialog::Create()成员函数来创建对话框。 如果对话框资源在设计时选中了Visible属 性,对话框将立即显示,若没有,必须调 用对话框类的成员函数ShowWindow()函 数来显示。
模式对话框与无模式 对话框
实验目的
掌握模式对话框与无模式对话框对话框的 创建、初始化和打开、关闭。
1.模式对话框的创建、显示与关闭
模式对话框的创建与显示比较简单,只要 构 造 一 个 CDialog 对 象 , 然 后 调 用 其 DoModal()成员函数即可。 例:CDialog Dlg; int n=Dlg.DoModal(); DoModal()函数显示对话框并控制用户与 对 话 框 的 交 互 , 直 到 用 户 单 击 OK 或 Cancel按扭为止。DoModal()函数返回时 对话框自动关闭。