收藏 分享(赏)

《Visual C++教程 第二版》第4章对话框.ppt

上传人:j35w19 文档编号:8694042 上传时间:2019-07-07 格式:PPT 页数:43 大小:945KB
下载 相关 举报
《Visual C++教程 第二版》第4章对话框.ppt_第1页
第1页 / 共43页
《Visual C++教程 第二版》第4章对话框.ppt_第2页
第2页 / 共43页
《Visual C++教程 第二版》第4章对话框.ppt_第3页
第3页 / 共43页
《Visual C++教程 第二版》第4章对话框.ppt_第4页
第4页 / 共43页
《Visual C++教程 第二版》第4章对话框.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

1、第4章对话框,4.1 从C+到Windows编程 4.2 添加并使用对话框 4.3 使用向导创建对话框应用程序 4.4 使用无模式对话框 4.5 通用对话框和消息对话框,4.1从C+到Windows编程,4.1.1简单的Windows应用程序 (1)选择“文件”“新建”菜单命令,显示出“新建”对话框。单击“工程”标签,从列表框中选中Win32 Application(Win32 应用程序)项。,(2)在工程名称框中键入Win32应用程序项目名称Ex_HelloMsg。在“位置”下的编辑框中直接键入文件夹名称,或单击浏览按钮(.)选择一个已有的文件夹。(3)单击确定按钮继续。一个询问项目类型的W

2、in32应用程序向导将被显示,选中An empty project项。单击完成按钮,系统将显示AppWizard的创建信息,单击确定按钮系统将自动创建此应用程序。,4.1从C+到Windows编程,(4)再次选择“文 件”“新建”菜单命令,显示出“新建”对话框。单击“文件”标签,在左边的列表框中选择C+ Source File项,在右边的“文件”下的编辑框中键入Ex_HelloMsg.cpp,单击确定按钮。,(5) 输入下面的代码:#include int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lp

3、CmdLine, int nCmdShow) MessageBox (NULL, “你好,我的Visual C+世界!“, “问候“, 0) ;return 0 ;,4.1从C+到Windows编程,WinMain函数的原型如下:int WINAPI WinMain (HINSTANCE hInstance, / 当前实例句柄HINSTANCE hPrevInstance, / 前一实例句柄LPSTR lpCmdLine, / 指向命令行参数的指针int nCmdShow) / 窗口的显示状态这里出现了一个新的概念“句柄”(handle),所谓句柄是一个标识Windows资源和设备等对象的变量

4、,或者是一个对操作系统资源的间接引用。每一个用C/C+编写的Windows应用程序都需要Windows.h头文件,它还包含了其他的一些Windows头文件。这些头文件定义了Windows的所有数据类型、函数调用、数据结构和符号常量。程序中,MessageBox是一个Win32 API(Application Programming Interface, 应用程序接口)函数,用来弹出一个对话框窗口,显示短信息。该函数第一个参数用来指定父窗口句柄,即对话框所在的窗口句柄。第二、三个参数分别用来指定显示的消息内容和对话框窗口的标题,最后一个参数用来指定在对话框中显示的按钮。,4.1从C+到Windo

5、ws编程,4.1.2Windows编程特点Windows应用程序具有这样的一些特性:消息驱动机制、图形设备接口(GDI)、基于资源的程序设计、动态链接库。消息驱动机制 DOS程序是通过调用系统的函数来获得用户输入的,Windows程序是通过操作系统发送的消息来处理用户输入的。消息驱动的机制是Windows编程的最大特点。WinMain函数通常要完成以下几步工作:定义并调用API函数RegisterClass注册应用程序的窗口类。调用相关API函数创建和显示窗口,并进行其它必要的初始化处理。其中,函数CreateWindow用来创建已注册窗口类的窗口。 创建和启动应用程序的消息循环。Window

6、s应用程序接受各种不同的消息,包括键盘消息、鼠标以及窗口产生的各种消息。Windows系统首先将消息放入消息队列中,应用程序的消息循环就是从应用程序的消息队列中检取消息,并将消息发送相应的窗口过程函数中作进一步处理。API函数GetMessage 和DispatchMessage就是起到这样的作用。如果接收到WM_QUIT消息,则退出应用程序。,4.1从C+到Windows编程,图形设备接口(GDI) Windows提供了一个抽象的图形设备接口(Graphical Device Interface,简称GDI),使用户直接利用系统的GDI函数就能方便实现图形和文本的输出,而不必关心与系统相连的

7、外部设备的类型。 基于资源的程序设计 Windows应用程序常常包含众多图形元素。每一个这样的资源都用相应的标识符来区分,而且Windows内部也有预定义的资源。在Windows环境下,每一个资源元素都作为一种可以装入应用程序的资源来存放。这些资源可以被编辑、修改,也可以被其他应用程序所共享。动态链接库 动态链接库提供一些特定结构的函数,能被应用程序在运行过程中装入和连接,且多个程序可以共享同一个动态链接库。Windows提供了应用程序可调用的丰富的函数,大多数用于实现其用户界面和在显示器上显示的文本和图形,都是通过动态链接库来实现的。这些动态链接库是一些具有DLL扩展名或者有时是EXE扩展名

8、的文件。在Windows操作系统中,最主要的DLL有KERNEL32.DLL、GDI32.DLL和USER32.DLL。其中,KERNEL32.DLL用来处理存储器低层功能、任务和资源管理等Windows核心服务;GDI32.DLL用来提供图形设备接口,管理用户界面和图形绘制,包括Windows元文件、位图、设备描述表和字体等;而USER32.DLL负责窗口的管理,包括消息、菜单、光标、计时器以及其它与控制窗口显示相关的一些功能。,4.1从C+到Windows编程,4.1.3Windows基本数据类型,4.1从C+到Windows编程,4.1.4MFC应用程序框架类型 MFC把编程规范中的大多

9、数内容封装成为各种类,使程序员从繁杂的编程中解脱出来。Visual C+还提供大量的向导和可视化编辑工具,使得用户不需要添加太多的代码就能实现不同风格和用途的应用程序。MFC AppWizard就是Visual C+ 6.0提供的一个非常有用的向导,它能为用户快速、高效、自动地生成一些常用的标准程序结构和编程风格。MFC AppWizard(exe)应用程序框架包含用户最常用、最基本的三种应用程序类型:单文档、多文档和基于对话框的应用程序。单文档应用程序每次只能打开和处理一个文档对话框的程序没有菜单、工具栏及状态栏,也不能处理文档,但它的好处是速度快,代码少,程序员所花费的开发和调试时间短。多

10、文档应用程序,能允许同时打开和处理多个文档。与单文档应用程序相比,增加了许多功能,因而需要大量额外的编程工作。,4.1从C+到Windows编程,表4.2 MFC AppWizard创建的应用程序类型,4.1从C+到Windows编程,4.1.5创建一个应用程序框架 开始选择“文件”“新建”菜单,在弹出的“新建”对话框中选择“工程”标签,这时显示出一系列的应用程序项目类型;选择MFC AppWizard(exe)的项目类型(该类型用于创建可执行的Windows应用程序),将项目工作文件夹定位在“Visual C+ 6.0程序对话框”,并在工程框中输入项目名Ex_SDI。,4.1从C+到Wind

11、ows编程,选择程序类型单击确定按钮,进行下列选择:(1)从应用程序类型单个文档(Single Document,简称SDI)、多重文档(Multiple Document ,简称MDI)和基本对话(Dialog Based,基于对话框的应用程序)中选择“单个文档”。,(2)决定应用程序中是否需要MFC的文档视图(“文档/查看体系结构支持”)结构的支持。若不选定此项,则程序中的磁盘文件的打开、保存以及文档和视图的相互作用等功能需要用户来实现。一般情况下,应选中此项。(3)选择资源所使用的语言,这里是“中文中国”。,4.1从C+到Windows编程,简单创建 保留默认的选项,单击完成按钮,显示出

12、用户在步骤中作出的选择,单击确定按钮系统开始创建。,4.1从C+到Windows编程,编译并运行到这里为止,用户虽然没有编写任何程序代码,但MFC AppWizard已经根据用户的选择内容自动生成基本的应用程序框架。单击编译工具条 上的运行工具按钮“ ”或按快捷键Ctrl+F5,系统开始编连并运行生成的单文档应用程序可执行文件Ex_SDI.exe。,4.2添加并使用对话框,4.2.1资源与资源标识 资源的分类 将上例Ex_SDI的项目工作区窗口切换到“ResourceView”页面。,资源可分为下列几类:(1)快捷键列表(Accelerator):一系列组合键的集合,被应用程序用来引发一个动作

13、。该列表一般与菜单命令相关联,用来代替鼠标操作。(2) 对话框(Dialog):含有按钮、列表框、编辑框等各种控件的窗口。(3)图标(Icon):代表应用程序显示在Windows桌面上的位图,它同时有3232像素和1616像素两种规格。(4)菜单(Menu):用户通过菜单可完成应用程序的大部分操作。,(5) 字串表(String Table):应用程序使用的全局字符串或其他标识符。(6) 工具栏按钮(Toolbar):工具栏外观是以一系列具有相同尺寸的位图组成的,它通常与一些菜单命令项相对应,用以提高用户的工作效率。(7) 版本信息(Version):包含应用程序的版本、用户注册码等相关信息。

14、,4.2添加并使用对话框,标识符 每一个资源类别下都有一个或多个相关资源,每一个资源均是由标识符来定义的。当添加或创建一个新的资源或资源对象时,系统会为其提供默认的名称,如IDR_MAINFRAME等。用户可重新命名,但要按一定的规则来进行。一般地,要遵循下列规则:(1) 在标识符名称中允许使用字母az、AZ、09以及下划线。(2) 标识符名称不区分大小写字母,如new_idd与New_Idd是相同的标识符。(3) 不能以数字开头,如8BIT是不合法的标识符名。(4) 字符个数不得超过247个。,4.2添加并使用对话框,4.2.2添加对话框资源 添加对话框资源一般可按下列步骤(在上例Ex_SD

15、I基础上进行):(1)选择“插入”“资源”菜单,或按快捷键Ctrl+R打开“插入资源”对话框,在对话框中可以看到资源列表中存在Dialog项,若单击Dialog项左边的“+”号,将展开对话框资源的不同类型选项。,4.2添加并使用对话框,(2)对展开的不同类型的对话框资源不作任何选择,选中“Dialog”,单击新建按钮,系统就会自动为当前应用程序添加了一个对话框资源。,系统为对话框资源自动赋给它一个默认的标识符名称(第一次为IDD_DIALOG1,以后依次为IDD_DIALOG2、IDD_DIALOG3、.)。使用通用的对话框模板创建新的对话框资源。对话框的默认标题为Dialog,有OK和Can

16、cel两个按钮,这两个按钮的标识符分别为IDOK和IDCANCEL。对话框模板资源所在的窗口称为对话框资源编辑器,在这里可以通过控件工具栏和布局工具栏向对话框添加和布局控件,并可设置对话框的属性。,4.2添加并使用对话框,4.2.3设置对话框属性 在对话框模板处右击鼠标,从弹出的快捷菜单中选择“属性”菜单项。,表4.5 对话框的General属性,4.2添加并使用对话框,将添加的对话框的属性进行如下三点修改:将对话框标识符改成IDD_DIALOG_FIRST;将对话框标题改为“我的第一个对话框”;单击字体按钮,通过弹出的字体对话框将对话框内的文本设置成“宋体,9” ,以使自己的对话框和Wind

17、ows中的对话框保持外观上的一致。,4.2添加并使用对话框,4.2.4添加和布局控件在对话框中添加一个控件的方法:在控件工具栏中单击某控件;在对话框指定位置单击鼠标左键,则此控件被添加到对话框的相应位置,再拖动选择框可改变控件的大小和位置。在控件工具栏中单击某控件,此时的鼠标箭头对话框内变成“十”字形状;在指定位置处单击鼠标左键不放,拖动鼠标至满意位置,释放鼠标键。用鼠标左键点中控件工具栏中的某控件,并按住鼠标左键不放;在移动鼠标到对话框的指定位置的过程中,用户会看到一个虚线框,下面带有该控件的标记;释放鼠标左键,新添加的控件立即出现在对话框中。,4.2添加并使用对话框,控件的选取 选取单个控

18、件,则可以下列方法。用鼠标直接选取。用助记符来选取。用Tab键选取。对于多个控件的选取,可采用下列方法:先在对话框内按住鼠标左键不放,拖出一个大的虚框,然后释放鼠标,则被该虚框所包围的控件都将被选取。先按住Shift键不放,然后用鼠标选取控件,直到所需要的多个控件选取之后再释 放Shift键。若在选取时,对已选取的控件再选取一下,则取消该控件选取。需要注意的是:(1) 一旦单个控件被选取后,其四周由选择框包围着,选择框上还有几个(通常是八个)蓝色实心小方块,拖动它可改变控件的大小。(2)多个控件被选取后,其中只有一个控件的选择框有几个蓝色实心小方块,这个控件称为主要控件,而其他控件的选择框的小

19、方块是空心的。,4.2添加并使用对话框,控件的删除、复制和布局 与布局工具相对应的菜单命令在“编排”菜单下,而且大部分命令均有相应的快捷键,图4.17 “编排”菜单命令项,4.2添加并使用对话框,表4.6 “编排”菜单命令的快捷键及功能描述,注意:大多数布置控件的命令使用前,都需要用户选取多个控件,且“主要控件”起到了关键作用。例如用户选取多个控件后,使用“Make Same Size”命令只改变其它控件的大小,并与“主要控件”的尺寸一致。因此,在多个控件的布置过程中,常需要重新设置“主要控件”。设置的方法是按住Ctrl或Shift键,然后用鼠标单击所要指定的控件即可。为了便于用户在对话框内精

20、确定位各个控件,系统还提供了网格、标尺等辅助工具。在图4.16的控件布局工具栏的最后两个按钮分别用来网格和标尺的切换。一旦网格显示,添加或移动控件时都将自动定位在网格线上。,4.2添加并使用对话框,测试对话框 “编排”菜单下的Test命令或布局工具栏上的测试按钮是用来模拟所编辑的对话框的运行情况,帮助用户检验对话框是否符合用户的设计要求以及控件功能是否有效等。 操作示例 向对话框添加一个静态文本控件。一个静态文本控件就是一个文本标签。右击添加的控件,从弹出的快捷菜单中选择“属性”。,4.2添加并使用对话框,4.2.5创建对话框类 在对话框资源模板的空白区域内双击鼠标,弹出对话框,询问是否为对话

21、框资源创建一个新类。单击OK按钮,弹出New Class对话框。Name框是用来输入用户定义的类名,单击Change按钮可改变默认的源文件名称及其在磁盘中的位置。从Base class框的内容看出,用户对话框类是从基类CDialog派生而来的。在Name框中输入类名CFirstDlg,单击OK按钮,一个基于对话框资源模板的对话框类CFirstDlg就创建好了。此时,出现MFC ClassWizard(MFC类向导)对话框。,4.2添加并使用对话框,4.2.6添加对话框代码 在MFC ClassWizard对话框,查看“Class name”列表中是否选择了CFirstDlg,在IDs列表中选择

22、CFirstDlg,在Messages框中找到并选择WM_INITDIALOG消息。,单击Add Function按钮或双击WM_INITDIALOG消息,MFC ClassWizard自动为CFirstDlg类添加OnInitDialog函数。WM_INITDIALOG是在对话框显示之前向父窗口发送的消息,由于建立了此消息和OnInitDialog函数的关联系统在对话框显示之前就会调用此函数,因此将对话框一些初始化代码添加到这个函数中。,4.2添加并使用对话框,在Member functions列表框中选择刚添加的OnInitDialog函数,单击Edit Code按钮(或直接在函数名双击鼠

23、标),将自动出现该函数代码编辑窗口,在此函数中添加下列代码:BOOL CFirstDlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization hereCStatic* pWnd = (CStatic*)GetDlgItem(IDC_STATIC_1);pWnd-SetWindowText(“这是我的第一个对话框!“);return TRUE; / return TRUE unless you set the focus to a control/ EXCEPTION: OCX Property Pages

24、 should return FALSECStatic是静态文本控件的MFC类,SetWindowText是CWnd的一个成员函数,设置窗口的文本内容,由于控件类是CWnd的子类(派生类),因此可以使用基类的SetWindowText来改变静态文本控件显示的内容。GetDlgItem也是CWnd类的一个成员函数,用来获得对话框中控件。,4.2添加并使用对话框,4.2.7在程序中使用对话框 通过Ex_SDI的菜单项命令来显示前面添加的对话框,步骤如下:(1)在项目工作区窗口中选择ResourceView页面,双击资源“Menu”项中的IDR_MAINFRAME,在菜单的最后一项,输入新的菜单项。

25、,4.2添加并使用对话框,(2)在菜单的空位置上双击鼠标左键,则出现它的属性对话框,在标题框中输入“测试(&T)”,其中符号&用来其后面的字符作为该菜单项的助记符,这样当按住“Alt”键不放,再敲击该助记符键时,对应的菜单项就会被选中,或在菜单打开时,直接按相应的助记符键,对应的菜单项也会被选中。,4.2添加并使用对话框,(3)单击菜单属性对话框中的“保存可见”(Keep Visible)按钮。单击“测试”菜单项下方的空位置,在属性对话框中,输入标题“对话框(&D)”,在ID框输入该菜单项的资源标识:ID_TEST_DLG,单击属性对话框右上角的关闭按钮。,4.2添加并使用对话框,(4) 用鼠

26、标将新添加的菜单项拖到“查看”和“帮助”菜单项之间。(5) 选择“查看”“建立类向导”菜单命令或按Ctrl+W快捷键,出现MFC ClassWizard对话框,并自动切换到Message Maps页面。从“Class name”列表中选择CMainFrame,在IDs列表中选择ID_TEST_DLG,然后在Messages框中选择COMMAND消息。(6)单击Add Function按钮或双击COMMAND消息,出现“Add Member Function”对话框以输入成员函数的名称。系统默认的函数名为OnTestDlg,如图4.27所示。该函数是对菜单项ID_TEST_DLG的映射,也就是说

27、,当在应用程序运行时,用户选择“对话框”,则该函数OnTestDlg被调用,执行函数中的代码。,4.2添加并使用对话框,(7)单击OK按钮,在ClassWizard的“Member functions”列表中将列出新增加的成员函数。选择此函数,单击Edit Code按钮(或直接在函数名双击鼠标),在此成员函数中添加下列代码:void CMainFrame:OnTestDlg() CFirstDlg dlg; / 定义对话框类对象dlg.DoModal(); / 显示对话框DoModal是CDialog基类成员函数,它是用来显示和终止模式对话框。(8)在OnTestDlg函数的实现文件MainF

28、rm.cpp的前面添加CFirstDlg类的包含语句,即:#include “Ex_SDI.h“#include “MainFrm.h“#include “FirstDlg.h“(9)选择“测试” “对话框”菜单项,这个对话框就是刚才添加的对话框,4.3使用向导创建对话框应用程序,(1)选择“文件”“新建”菜单,在弹出的“新建”对话框中选择“工程”页面,选择MFC AppWizard(exe),在工程框中输入项目名Ex_DlgDemo。(2)单击确定,在出现的“Step 1”对话框中选择“基本对话”应用程序类型。,4.3使用向导创建对话框应用程序,(3)单击下一个 ,允许用户设置对话框的风格及

29、ActiveX控件等特点的支持。 (4)单击下一个 ,除了窗口风格是MFC标准风格外,还有两个方面的选项可供用户选择:一方面是在源文件中是否加入注释用来引导用户编写程序代码,另一方面是使用动态链接库还是静态链接库。,4.3 使用向导创建对话框应用程序,(5)保留默认选项,单击下一个 。(6)单击完成 ,单击确定按钮系统开始创建。(7)编译并运行。,4.4使用无模式对话框,模式对话框 指当对话框被弹出,用户必须在对话框中作出相应的操作,在退出对话框之前,对话框所在的应用程序不能继续执行。一般模式对话框会有OK和Cancel按钮。单出OK,认定对话框中的选择或输入有效;单击Cancel,对话框中的

30、选择或输入无效。无模式对话框 在前面Ex_SDI基础上创建并使用无模式对话框,其步骤如下:(1) 打开前面的应用程序项目Ex_SDI。(2)在该项目中添加一个对话框资源,将其标识符设为IDD_DIALOG_SECOND,标题设为“无模式对话框”,对话框字体和大小设为“宋体,9号”。(3)为IDD_DIALOG_SECOND对话框资源创建一个对话框类CSecondDlg。(4)按Ctrl+W快捷键打开MFC ClassWizard,选择CSecondDlg,选择IDOK,Messages框中选择BN_CLICKED,单击Add Function或双击BN_CLICKED,保留系统默认的函数名为O

31、nOK。,4.4使用无模式对话框,(5)修改CSecondDlg:OnOK函数中的代码。void CSecondDlg:OnOK() / 添加其他代码使用户输入对话框的数据有效DestroyWindow(); / 终止对话框显示delete this; / 删除对话框,释放内存空间 DestroyWindow是对话框基类CWnd的一个成员函数,用来终止窗口。(6)添加Cancel按钮(标识符为IDCANCEL)的BN_CLICKED消息映射,并修改其映射函数 CSecondDlg:OnCancel的代码。void CSecondDlg:OnCancel() DestroyWindow();de

32、lete this; (7)将项目工作区切换到ClassView(类视图)页面,展开CMainFrame类的所有成员,双击OnTestDlg自动定位到该函数的实现代码处,将其修改:void CMainFrame:OnTestDlg() CSecondDlg *pDlg = new CSecondDlg;/ new来为对话框分配内存空间pDlg-Create( IDD_DIALOG_SECOND ); / 创建对话框pDlg-ShowWindow( SW_NORMAL ); / 显示对话框 Create以一个对话框资源来创建对话框,ShowWindow是一个CWnd成员函数,用来显示对话框,SW

33、_NORMAL用来指定将窗口显示成一般常用的状态。,4.4使用无模式对话框,(8) 在OnTestDlg函数的MainFrm.cpp前面添加CSecondDlg类的包含语句:#include “Ex_SDI.h“#include “MainFrm.h“#include “FirstDlg.h“#include “SecondDlg.h“(9)编译并运行。在应用程序菜单上,多次选择“测试” “对话框”菜单项,将会在同一个位置中出现多个对话框,拖动这些对话框到适当位置。 模式和无模式对话框在用编辑器设计和使用MFC ClassWizard创建用户对话框类的方法是一致的,但在对话框的创建和退出的方式

34、是不同的。创建时,模式对话框是由系统自动分配内存空间,对话框退出时,对话框对象自动删除;无模式对话框则需要用户来指定内存,退出时还需自己来删除对话框对象。,4.5通用对话框和消息对话框,4.5.1通用对话框Windows提供了一组标准用户界面对话框,它们都有相应的MFC库中的类来支持。所有这些通用对话框类都是从一个公共的基类CCommonDialog派生而来。 这些对话框有一个共同特点:都从用户获取信息,并不对信息作处理。一个使用CFileDialog类示例 ,具体的步骤如下: (1)打开前面的应用程序项目Ex_SDI。 (2)将项目工作区切换到ClassView(类视图)页面,展开CMain

35、Frame类的所有成员,双击OnTestDlg就会在文档窗口中自动定位到该函数的实现代码处,将其修改成下列代码:,4.5通用对话框和消息对话框,void CMainFrame:OnTestDlg() CString filter;filter = “文本文件(*.txt)|*.txt|C+文件(*.h,*.cpp)|*.h;*.cpp|“; CFileDialog dlg (TRUE, NULL, NULL, OFN_HIDEREADONLY, filter);if (dlg.DoModal () = IDOK) CString str;str = dlg.GetPathName();AfxM

36、essageBox(str); CString是MFC中的一个类,用来操作字符串。 fxMessageBox用来弹出一个消息对话框。GetPathName是CFileDialog用来获取文件的全路径名。CFileDialog的构造函数的原型如下:CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWn

37、d* pParentWnd = NULL );bOpenFileDialog为TRUE时表示文件打开对话框,为FALSE时表示文件保存对话框。lpszDefExt用来指定文件扩展名。lpszFileName用来在文件名编辑框中指定开始出现的文件名。dwFlags用来指定对话框的界面标志。pParentWnd用来指定对话框的父窗口指针。lpszFilter参数用来确定出现在文件列表框中的文件类型。函数原型中,LPCTSTR类型用来表示一个常值字符指针,这里可以将其理解成是一个常值字符串类型。,4.5通用对话框和消息对话框,(3)编译运行,在应用程序菜单上,选择“测试” “对话框”,弹出如图对话框

38、。选定文件,单击打开,弹出一个消息对话框,显示该文件的全路径名称。注意:只当调用对话框类的成员函数DoModal并返回IDOK后,该对话框类的其他属性成员函数才会有效。,4.5通用对话框和消息对话框,4.5.2消息对话框 只是用来显示信息的。MFC类库中提供相应的函数实现这样的功能,使用时,直接在程序中调用它们即可。函数原型如下:int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 );int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NU

39、LL, UINT nType = MB_OK );这两个函数前者是MFC类库中的函数。AfxMessageBox是全程函数。MessageBox只能控件、对话框、窗口等一些窗口类中使用。都将返回用户选择按钮的情况,其中IDOK表示用户单击OK按钮。参数lpszText表示在消息对话框中显示的字符串文本,lpszCaption表示消息对话框的标题,为NULL时使用默认标题,nIDHelp表示消息的上下文帮助ID号,nType表示消息对话框的图标类型以及所包含的按钮类型,这些类型是用MFC预先定义的一些标识符来指定的。 表4.9 消息对话框常用图标类型,4.5通用对话框和消息对话框,表4.10 消息对话框常用按钮类型,在使用消息对话框时,图标类型和按钮类型的标识可使用“|”来组合。例如,在Ex_SDI项目的CMainFrame:OnTestDlg函数中添加下面的代码,当编译运行选择“测试” “对话框”菜单项,就会出现如图4.40所示的消息对话框。void CMainFrame:OnTestDlg() int nChoice = MessageBox(“你喜欢Visual C+吗?“,“提问“,MB_OKCANCEL|MB_ICONQUESTION);if (nChoice = IDYES) /. ,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报