科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Visual C++.NET编程讲座之五

Visual C++.NET编程讲座之五

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文讨论了对话框界面设计的一般过程和技巧,然后创建对话框类并用模式和无模式方式来显示

作者:Adding 来源:yesky 2007年11月16日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
模式和无模式对话框的显示

  对话框有两种类型,一种是模式对话框,另一种是无模式对话框。所谓"模式对话框"是指当对话框显示后,用户必须在对话框中作出相应的操作,在退出对话框之前,对话框所在的应用程序不能执行其他操作。所谓"无模式对话框"是指当对话框被弹出后,一直保留在屏幕上,用户可继续在应用程序中进行其它操作。

  1. 模式对话框的显示

  一般情况下,我们看见的对话框多数是模式对话框。下面将前面的对话框以"模式"方式来显示。

  (1) 将解决方案资源管理器窗口切换到"资源视图",双击Menu下的IDR_MAINFRAME,打开Viewer中的菜单资源。

  (2) 在"格式"菜单中添加一个菜单项"背景设置(&B)…",其ID设为ID_FOMAT_SET。

  (3) 由于该对话框用来设置视图的背景色,因此我们需将菜单项ID_FOMAT_SET的COMMAND事件映射添加在CViewerView类中,并在映射函数CViewerView::OnFormatSet中添加显示对话框代码,如图6所示。


图6 在OnFormatSet中添加的代码

  程序说明:

  ① 程序中, DoModal()是CDialog的成员函数,用来负责模式对话框的显示和终止。

  ② 当对话框显示后,只有当用户单击"确定"按钮后,系统才认定用户在对话框中的选择或输入有效,函数DoModal返回IDOK,否则DoModal返回IDCANCEL,对话框中的选择或输入无效。

  ③ MessageBox是一个MFC窗口类CWnd的一个成员函数,用来显示一个"消息对话框",显示指定的内容。

  (4) 在类CViewerView接口文件ViewerView.h的前面添加CSetDlg类的包含头文件,如图7所示的加框部分。


图7 添加类CSetDlg类的包含头文件

  (5) 运行程序,打开"格式"菜单,单击"背景设置",结果如图7所示。由于我们还没有向对话框添加控件,因此显示的是一个默认的对话框。单击"确定"按钮后,还将弹出一个消息对话框,这就是上述代码的作用。


图8 模式对话框的显示结果
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章