文档详情

Visual C++程序设计教程(第二版)课件:对话框.ppt

发布:2024-11-10约4.5千字共40页下载文档
文本预览下载声明

6.4消息对话框(续) 步骤3.运行程序,选择“消息对话框”子菜单,查看运行结果。6.5属性对话框

属性页对话框将多个对话框集中起来,通过标签或按钮来激活各个页面,主要分为一般属性页对话框和向导对话框两类。在一般属性页对话框中,页面的切换通过点击不同的标签实现;在向导对话框中,页面的选择是通过点击“上一页”、“下一页”等按钮实现的。属性页对话框 与属性页对话框相关的类主要包括CPropertySheet类和CPropertyPage类。 CPropertySheet类是CWnd的一个派生类,其对象作为属性页对话框的窗口框架出现,主要实现管理各个属性页面的作用。 CPropertySheet类的重要成员函数:VoidAddPage(CpropertyPage*pPage):该函数用于向属性框中增加属性页。intDoModal():用于显示一个模态属性页,对于一般属性页,返回值为IDOK、IDCANCEL或者0。 为Eg6_1程序增加消息对话框的功能:步骤1.首先为菜单“其他对话框”增加子菜单“属性页对话框”。步骤2.打开资源面板,选择Dialog条目,单击右键,在弹出的菜单中选择InsertDialog,新建两个对话框资源;步骤3.将新建的对话框标题该为“第一页”和“第二页”;步骤4.为新建的对话框资源添加其相对应的类,类名分别为“Dlg”、“Dlg1”;步骤5.利用ClassWizard为“属性页对话框”菜单添加消息相应函数,函数名OnMenu2(),为其添加代码如下:为Eg6_1程序增加消息对话框的功能:(续)voidCEg6_1Dlg::OnMenu2(){ //TODO:AddyourcommandhandlercodehereCPropertySheetm_sheet(属性页对话框);CDlg1page2;CDlgpage1;m_sheet.AddPage(page1);m_sheet.AddPage(page2);m_sheet.DoModal();}6.6鼠标和键盘消息

消息分为鼠标消息、键盘消息、窗口消息、自定义消息。 VisualC++把消息机制有效的封装起来,不需要写冗长的代码就可以很轻松的编写各个不同的处理函数。6.6.1鼠标消息

用户移动鼠标时,系统屏幕上移动一个称之为鼠标光标的位图。鼠标光标含有一个叫做热点的像素点,系统用它来跟踪和识别光标的位置。对话框 在Windows程序中,对话框是最重要的显示信息和取得用户数据的单元; 一个应用程序可以拥有几个对话框,这些对话框从用户那里接受特定类型的信息; 可以使用资源编辑器创建对话框资源,向其中添加控件,调整对话框的布局,使对话框更加便于使用。6.1消息映射

WINDOWS中消息主要有以下三种类型:标准的WINDOWS消息:这类消息是以WM_为前缀,例如WM_COMMAND、WM_MOVEWM_QUIT等;命令消息:命令消息以WM_COMMAND为消息名。控件通知消息:控件通知消息也是以WM_COMMAND为消息名。6.1消息映射(续) 对于标准的Windows消息,在CWnd类中已经预定义了默认的处理函数。这些函数以On开头,以它响应的WindowsWM_消息名后半部分作为函数名的后半部分; 对于控件通知消息和命令消息,一般没有默认的消息处理函数,其函数名理论上可以随意,但最好遵守一些约定,如以On开头。当用ClassWizard加入这两种消息处理函数时,它会提供一个建议的函数名。6.1消息映射(续)消息映射包括了两部分:一部分存在于头文件中。在类的定义中加上一行宏调用: DECLARE_MESSAGE_MAP()另一部分存在于类的实现文件(.cpp文件)中。在文件中加上消息映射表: BEGIN_MESSAGE_MAP(类名,父类名)…… 消息映射入口项 …… END_MESSAGE_MAP()6.2定义对话框

对话框大致可以分为以下两种:模态对话框 模态对话框弹出后,独占了系统资源,用户只有在关闭模态对话框后,才可以继续执行应用程序其他部分的代码。模态对话框一般要求用户做出某种选择。非模态对话框 非模态对话框弹出后,程序可以在不关闭对话框的情况下继续执行,在转入到应用程序其他部分的代码时可以不需要用户做出响应。非模态对话框一般用来显示信息,或者实时的进行一些设置。6.2定义对话框(续) 一般的对话框

显示全部
相似文档