番茄花园计算机高级程序设计五章

上传人:ni****g 文档编号:584786286 上传时间:2024-09-01 格式:PPT 页数:44 大小:1.55MB
返回 下载 相关 举报
番茄花园计算机高级程序设计五章_第1页
第1页 / 共44页
番茄花园计算机高级程序设计五章_第2页
第2页 / 共44页
番茄花园计算机高级程序设计五章_第3页
第3页 / 共44页
番茄花园计算机高级程序设计五章_第4页
第4页 / 共44页
番茄花园计算机高级程序设计五章_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《番茄花园计算机高级程序设计五章》由会员分享,可在线阅读,更多相关《番茄花园计算机高级程序设计五章(44页珍藏版)》请在金锄头文库上搜索。

1、计算机高级程序设计计算机高级程序设计第五章第五章对话框的基本概念对话框的基本概念 对话框是一种次要窗体,通常在响应某个命令菜单时弹出。在对话框对话框是一种次要窗体,通常在响应某个命令菜单时弹出。在对话框对话框是一种次要窗体,通常在响应某个命令菜单时弹出。在对话框对话框是一种次要窗体,通常在响应某个命令菜单时弹出。在对话框上可以添加各种通用控件。上可以添加各种通用控件。上可以添加各种通用控件。上可以添加各种通用控件。 所有对话框及对话框上的控件都由所有对话框及对话框上的控件都由所有对话框及对话框上的控件都由所有对话框及对话框上的控件都由CWndCWnd类派生而来。因而能对窗体类派生而来。因而能对

2、窗体类派生而来。因而能对窗体类派生而来。因而能对窗体进行的操作也适用于对话框及控件。进行的操作也适用于对话框及控件。进行的操作也适用于对话框及控件。进行的操作也适用于对话框及控件。 对话框是一种能包含各类通用控件的特殊窗口,通过添加到其上的控对话框是一种能包含各类通用控件的特殊窗口,通过添加到其上的控对话框是一种能包含各类通用控件的特殊窗口,通过添加到其上的控对话框是一种能包含各类通用控件的特殊窗口,通过添加到其上的控件,对话框可以完成指定的任务。分为两部分:件,对话框可以完成指定的任务。分为两部分:件,对话框可以完成指定的任务。分为两部分:件,对话框可以完成指定的任务。分为两部分:对话框模板

3、对话框模板开发人员可利用对话框模板往对话框上添加开发人员可利用对话框模板往对话框上添加开发人员可利用对话框模板往对话框上添加开发人员可利用对话框模板往对话框上添加控件并进行合理布局。控件并进行合理布局。控件并进行合理布局。控件并进行合理布局。对话框在创建时会收到对话框在创建时会收到对话框在创建时会收到对话框在创建时会收到WM_INITDIALOGWM_INITDIALOG的消息,响应该消息的事件处理函数为的消息,响应该消息的事件处理函数为的消息,响应该消息的事件处理函数为的消息,响应该消息的事件处理函数为OnInitDialogOnInitDialog(),(),其作用是对话框初始化其作用是对

4、话框初始化其作用是对话框初始化其作用是对话框初始化对话框类对话框类开发人员可以为每个对话框开发人员可以为每个对话框开发人员可以为每个对话框开发人员可以为每个对话框定义一个派生定义一个派生定义一个派生定义一个派生CDialogCDialog的的的的新类用来实现为对话框新类用来实现为对话框新类用来实现为对话框新类用来实现为对话框指定的特殊功能指定的特殊功能指定的特殊功能指定的特殊功能2西南交通大学经济管理学院:何耀琴5.1 模态对话框模态对话框以排他方式工作的对话框。这类对话框出以排他方式工作的对话框。这类对话框出现时,用户虽然可以看见应用程序的其他现时,用户虽然可以看见应用程序的其他对象,但在其

5、关闭之前,输入焦点不能切对象,但在其关闭之前,输入焦点不能切换到拥有该对话框的应用程序的其他窗口换到拥有该对话框的应用程序的其他窗口中去,也就是不能实现同其他对象的交互。中去,也就是不能实现同其他对象的交互。在在MFC单文档项目中,可以通过对话框类单文档项目中,可以通过对话框类的成员函数的成员函数DoModal()来创建并显示一个模来创建并显示一个模态对话框。态对话框。3西南交通大学经济管理学院:何耀琴创建模态对话框的流程创建模态对话框的流程(1 1)创建一个)创建一个)创建一个)创建一个MFCMFC单文档项目,命名为单文档项目,命名为单文档项目,命名为单文档项目,命名为“ “ModelDia

6、logModelDialog” ”(2 2)切换到)切换到)切换到)切换到“ “资源视图资源视图资源视图资源视图” ”,右键单击,右键单击,右键单击,右键单击“ “ModelDialogModelDialog” ”。右。右。右。右键菜单中选择键菜单中选择键菜单中选择键菜单中选择“ “添加添加添加添加” ” “资源资源资源资源” “” “DialogDialog” ”;(3 3)选择)选择)选择)选择“ “Dialog”Dialog”,单击,单击,单击,单击“ “新建新建新建新建” ”; ; 此时屏幕上会出现一个对话框模此时屏幕上会出现一个对话框模此时屏幕上会出现一个对话框模此时屏幕上会出现一个

7、对话框模板;板;板;板;(4 4)双击对话框模板,在)双击对话框模板,在)双击对话框模板,在)双击对话框模板,在“ “MFCMFC类向类向类向类向导导导导” ”窗口中为新添加的对话框资源窗口中为新添加的对话框资源窗口中为新添加的对话框资源窗口中为新添加的对话框资源声明一个派生于声明一个派生于声明一个派生于声明一个派生于CDialogCDialog的类的类的类的类CModelCModel; ;(5 5)单击)单击)单击)单击“ “完成完成完成完成” ”;4西南交通大学经济管理学院:何耀琴对话框模板对话框模板5西南交通大学经济管理学院:何耀琴新派生的类新派生的类基类基类6西南交通大学经济管理学院:

8、何耀琴创建模态对话框的流程(续)创建模态对话框的流程(续)(6 6)切换到)切换到)切换到)切换到“ “解决方案资源管理器解决方案资源管理器解决方案资源管理器解决方案资源管理器” ”;(7 7)双击打开)双击打开)双击打开)双击打开“ “ModelDialog.hModelDialog.h” ”,添加,添加,添加,添加 “ “#include #include “ “Model.hModel.h” ”的包含语名的包含语名的包含语名的包含语名; ;(8 8)打开)打开)打开)打开“ “ModelDialog.cppModelDialog.cpp” ”文件,找到应用程序类的初文件,找到应用程序类的

9、初文件,找到应用程序类的初文件,找到应用程序类的初始化函数始化函数始化函数始化函数BOOL CModelDialogApp:InitInstance()BOOL CModelDialogApp:InitInstance(),在,在,在,在初始化函数中添加创建和显示模态对话框的代码。(见下初始化函数中添加创建和显示模态对话框的代码。(见下初始化函数中添加创建和显示模态对话框的代码。(见下初始化函数中添加创建和显示模态对话框的代码。(见下页图);页图);页图);页图);(9 9)调试并运行程序。)调试并运行程序。)调试并运行程序。)调试并运行程序。7西南交通大学经济管理学院:何耀琴8西南交通大学经

10、济管理学院:何耀琴说明:成员函数说明:成员函数说明:成员函数说明:成员函数DoModalDoModal() () 用来生成一个模态对话框用来生成一个模态对话框用来生成一个模态对话框用来生成一个模态对话框 CPropertySheet:DoModalCPropertySheet:DoModal / /所属的类所属的类所属的类所属的类 virtual virtual intint DoModalDoModal(); (); / /是一个虚函数是一个虚函数是一个虚函数是一个虚函数 返回值:返回值:返回值:返回值: 如果函数生成成功则返回如果函数生成成功则返回如果函数生成成功则返回如果函数生成成功则返

11、回IDOKIDOK或或或或IDCANCELIDCANCEL;否则返回;否则返回;否则返回;否则返回0 0或或或或- -1 1。如果此属性表是作为一个向导(参见。如果此属性表是作为一个向导(参见。如果此属性表是作为一个向导(参见。如果此属性表是作为一个向导(参见SetWizardModeSetWizardMode)建)建)建)建立的,立的,立的,立的,DoModalDoModal返回返回返回返回ID_WIZFINISHID_WIZFINISH或或或或IDCANCELIDCANCEL。 说明:说明:说明:说明: 此成员函数用来显示一个模态对话框。其返回值对应于用来关此成员函数用来显示一个模态对话框

12、。其返回值对应于用来关此成员函数用来显示一个模态对话框。其返回值对应于用来关此成员函数用来显示一个模态对话框。其返回值对应于用来关闭对话框的控件的闭对话框的控件的闭对话框的控件的闭对话框的控件的IDID。此函数返回后,。此函数返回后,。此函数返回后,。此函数返回后,WindowsWindows响应这个对响应这个对响应这个对响应这个对话框,所有的属性页都会被销毁。而这些对象本身仍然存在。话框,所有的属性页都会被销毁。而这些对象本身仍然存在。话框,所有的属性页都会被销毁。而这些对象本身仍然存在。话框,所有的属性页都会被销毁。而这些对象本身仍然存在。通常,在通常,在通常,在通常,在DoModalDo

13、Modal返回返回返回返回IDOKIDOK之后可以从之后可以从之后可以从之后可以从CPropertyPageCPropertyPage对象对象对象对象检取数据。检取数据。检取数据。检取数据。 9西南交通大学经济管理学院:何耀琴5.2 非模态对话框非模态对话框 非排他方式工作的对话框为非模态对话框。在非模态对话非排他方式工作的对话框为非模态对话框。在非模态对话非排他方式工作的对话框为非模态对话框。在非模态对话非排他方式工作的对话框为非模态对话框。在非模态对话框出现时,用户仍然可以实现与应用程序其他对象的交互。框出现时,用户仍然可以实现与应用程序其他对象的交互。框出现时,用户仍然可以实现与应用程序

14、其他对象的交互。框出现时,用户仍然可以实现与应用程序其他对象的交互。 要生成一个非模态对话框,需调用要生成一个非模态对话框,需调用要生成一个非模态对话框,需调用要生成一个非模态对话框,需调用CDialogCDialog类的类的类的类的Create()Create()函数函数函数函数 和和和和CWndCWnd类的类的类的类的ShowWindowShowWindow() () 函数来实现。函数来实现。函数来实现。函数来实现。 Create()Create()函数说明如下:函数说明如下:函数说明如下:函数说明如下: VirturalVirtural BOOL BOOL Create(LPCTSTRC

15、reate(LPCTSTR lpszTemplateName,CWndlpszTemplateName,CWnd* * pParentWndpParentWnd=NULL);=NULL); VirturalVirtural BOOL BOOL Create(UNITCreate(UNIT nIDTemplatenIDTemplate, , CWndCWnd* * pParentWndpParentWnd=NULL);=NULL); 两种形式中,参数两种形式中,参数两种形式中,参数两种形式中,参数lpszTemplateNamelpszTemplateName和和和和nIDTemplatenID

16、Template分分分分别指明所使用的对话框模板资源的名字和别指明所使用的对话框模板资源的名字和别指明所使用的对话框模板资源的名字和别指明所使用的对话框模板资源的名字和IDID值,参数值,参数值,参数值,参数pParentWndpParentWnd则指向该对话框的父窗体对象。则指向该对话框的父窗体对象。则指向该对话框的父窗体对象。则指向该对话框的父窗体对象。10西南交通大学经济管理学院:何耀琴ShowWindow()函数说明如下:函数说明如下: BOOL BOOL ShowWindow(intShowWindow(int nCmdShownCmdShow); ); 该函数作用:为窗口设置可见的

17、状态。其中参数该函数作用:为窗口设置可见的状态。其中参数该函数作用:为窗口设置可见的状态。其中参数该函数作用:为窗口设置可见的状态。其中参数nCmdShownCmdShow的取值的取值的取值的取值规定了当前窗口将以何种方式被显示。其取值和含义如下表:规定了当前窗口将以何种方式被显示。其取值和含义如下表:规定了当前窗口将以何种方式被显示。其取值和含义如下表:规定了当前窗口将以何种方式被显示。其取值和含义如下表:nCmdShownCmdShow可取可取可取可取 值值值值含含含含 义义义义SW_HIDESW_HIDE隐藏窗口,并将活动权交给其他窗体隐藏窗口,并将活动权交给其他窗体隐藏窗口,并将活动权

18、交给其他窗体隐藏窗口,并将活动权交给其他窗体SW_MINIMIZESW_MINIMIZE最小化窗口,并激活位于系统列表最前端的窗体最小化窗口,并激活位于系统列表最前端的窗体最小化窗口,并激活位于系统列表最前端的窗体最小化窗口,并激活位于系统列表最前端的窗体SW_RESTORESW_RESTORE激活并显示窗口激活并显示窗口激活并显示窗口激活并显示窗口SW_SHOWSW_SHOW激活窗口,并以当前位置和大小显示激活窗口,并以当前位置和大小显示激活窗口,并以当前位置和大小显示激活窗口,并以当前位置和大小显示SW_SHOWMAXMIZEDSW_SHOWMAXMIZED激活窗口,并以最大化方式显示激活

19、窗口,并以最大化方式显示激活窗口,并以最大化方式显示激活窗口,并以最大化方式显示SW_SHOWMINIMIZEDSW_SHOWMINIMIZED激活窗口,并以图标形式显示激活窗口,并以图标形式显示激活窗口,并以图标形式显示激活窗口,并以图标形式显示SW_SHOWMINNOACTIVESW_SHOWMINNOACTIVE保持窗口的当前状态,并以图标方式显示保持窗口的当前状态,并以图标方式显示保持窗口的当前状态,并以图标方式显示保持窗口的当前状态,并以图标方式显示SW_SHOWNASW_SHOWNA令窗口以当前的状态显示令窗口以当前的状态显示令窗口以当前的状态显示令窗口以当前的状态显示SW_SHO

20、WNOACTIVATESW_SHOWNOACTIVATE保持窗口的当前状态,并令其以最近的位置和大小保持窗口的当前状态,并令其以最近的位置和大小保持窗口的当前状态,并令其以最近的位置和大小保持窗口的当前状态,并令其以最近的位置和大小显示显示显示显示SW_SHOWNORMALSW_SHOWNORMAL激活并显示窗口,如果窗口被最大化或最小化,激活并显示窗口,如果窗口被最大化或最小化,激活并显示窗口,如果窗口被最大化或最小化,激活并显示窗口,如果窗口被最大化或最小化,WinsowsWinsows会将其恢复到原始的大小和位置。会将其恢复到原始的大小和位置。会将其恢复到原始的大小和位置。会将其恢复到原

21、始的大小和位置。11西南交通大学经济管理学院:何耀琴创建并显示一个非模态对话框的步骤:创建并显示一个非模态对话框的步骤:(1 1)创建一个)创建一个)创建一个)创建一个MFCMFC单文档项目,命名为单文档项目,命名为单文档项目,命名为单文档项目,命名为“ “UnModalDialogUnModalDialog” ”(2 2)切换到)切换到)切换到)切换到“ “资源视图资源视图资源视图资源视图” ”,右键单击,右键单击,右键单击,右键单击“ “UnModalDialogUnModalDialog” ”。右键右键右键右键菜单中选择菜单中选择菜单中选择菜单中选择“ “添加添加添加添加” “” “资源

22、资源资源资源” “” “Dialog”Dialog”;(3 3)选择)选择)选择)选择“ “Dialog”Dialog”,单击,单击,单击,单击“ “新建新建新建新建” ”, 此时屏幕上会出现一个此时屏幕上会出现一个此时屏幕上会出现一个此时屏幕上会出现一个对话框模板;对话框模板;对话框模板;对话框模板;(4 4)双击对话框模板,在)双击对话框模板,在)双击对话框模板,在)双击对话框模板,在“ “MFCMFC类向导类向导类向导类向导” ”窗口中为新添加的对话窗口中为新添加的对话窗口中为新添加的对话窗口中为新添加的对话框资源声明一个派生于框资源声明一个派生于框资源声明一个派生于框资源声明一个派生于

23、CDialogCDialog的类的类的类的类CUnModelCUnModel; ;(5 5)单击)单击)单击)单击“ “完成完成完成完成” ”;(6 6)切换到)切换到)切换到)切换到“ “解决方案资源管理器解决方案资源管理器解决方案资源管理器解决方案资源管理器” ”;(7 7)双击打开)双击打开)双击打开)双击打开“ “UnUnModModa alDialog.hlDialog.h” ”,添加包含对话框头文件的,添加包含对话框头文件的,添加包含对话框头文件的,添加包含对话框头文件的语句语句语句语句#include “#include “UnModel.hUnModel.h” ;” ; 并在此

24、文件的并在此文件的并在此文件的并在此文件的class CUnModalDialogApp : public class CUnModalDialogApp : public CWinAppCWinApp下的下的下的下的publicpublic中添加成员说明语句:中添加成员说明语句:中添加成员说明语句:中添加成员说明语句:CUnModelCUnModel * *dlgdlg; ;12西南交通大学经济管理学院:何耀琴添加的包含语句添加的包含语句添加的说明语句添加的说明语句13西南交通大学经济管理学院:何耀琴(8 8)双击打开)双击打开)双击打开)双击打开“ “UnUnModelDialog.cpp

25、ModelDialog.cpp” ”文件,在文件,在文件,在文件,在CUnModalDialogApp:CUnModalDialogAppCUnModalDialogApp:CUnModalDialogApp() ()函数中添加对函数中添加对函数中添加对函数中添加对dlgdlg初始化的语句初始化的语句初始化的语句初始化的语句: : dlgdlg=NULL;=NULL;添加代码添加代码14西南交通大学经济管理学院:何耀琴(9 9)找到应用程序类的初始化函数)找到应用程序类的初始化函数)找到应用程序类的初始化函数)找到应用程序类的初始化函数BOOL CBOOL CUnUnModelDialogAp

26、p:InitInstance()ModelDialogApp:InitInstance(),在初始化函,在初始化函,在初始化函,在初始化函数中添加创建和显示非模态对话框的代码。(见下页图);数中添加创建和显示非模态对话框的代码。(见下页图);数中添加创建和显示非模态对话框的代码。(见下页图);数中添加创建和显示非模态对话框的代码。(见下页图); /此处代码省略,下面是添加的代码此处代码省略,下面是添加的代码此处代码省略,下面是添加的代码此处代码省略,下面是添加的代码15西南交通大学经济管理学院:何耀琴 /此处代码省略此处代码省略此处代码省略此处代码省略 /下面方框内是添加的代码,注意添加位置下

27、面方框内是添加的代码,注意添加位置下面方框内是添加的代码,注意添加位置下面方框内是添加的代码,注意添加位置16西南交通大学经济管理学院:何耀琴(1010)调试运行结果,可看出当非模态)调试运行结果,可看出当非模态)调试运行结果,可看出当非模态)调试运行结果,可看出当非模态DialogDialog对话对话对话对话框出现时,其它对话框仍然可以操作。框出现时,其它对话框仍然可以操作。框出现时,其它对话框仍然可以操作。框出现时,其它对话框仍然可以操作。17西南交通大学经济管理学院:何耀琴5.3 图形界面图形界面 “ “图形界面图形界面图形界面图形界面” ”GUIGUI(Graphical User I

28、nterfaceGraphical User Interface,简称,简称,简称,简称 GUIGUI,又称图形用户接口)是指采用图形方式显示的计算,又称图形用户接口)是指采用图形方式显示的计算,又称图形用户接口)是指采用图形方式显示的计算,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,机操作用户界面。与早期计算机使用的命令行界面相比,机操作用户界面。与早期计算机使用的命令行界面相比,机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。图形界面对于用户来说在视觉上更易于接受。图形界面对于用户来说在视觉上更易于

29、接受。图形界面对于用户来说在视觉上更易于接受。 GUIGUI(图形界面)提供给用户以鼠标点击按钮方式进行操(图形界面)提供给用户以鼠标点击按钮方式进行操(图形界面)提供给用户以鼠标点击按钮方式进行操(图形界面)提供给用户以鼠标点击按钮方式进行操作,很直观。过去作,很直观。过去作,很直观。过去作,很直观。过去DOSDOS环境下只能输入命令的界面叫环境下只能输入命令的界面叫环境下只能输入命令的界面叫环境下只能输入命令的界面叫CLI CLI (Command line User Interface ) (Command line User Interface ) ,称为命令行模式用户,称为命令行模式

30、用户,称为命令行模式用户,称为命令行模式用户界面。界面。界面。界面。 GUIGUI常读做常读做常读做常读做“ “goo-eegoo-ee” ” 。 GUI GUI 设计需结合计算机科学、美学、心理学、行为学及实设计需结合计算机科学、美学、心理学、行为学及实设计需结合计算机科学、美学、心理学、行为学及实设计需结合计算机科学、美学、心理学、行为学及实际应用领域需求分析,强调人际应用领域需求分析,强调人际应用领域需求分析,强调人际应用领域需求分析,强调人机机机机环境三者作为一个系环境三者作为一个系环境三者作为一个系环境三者作为一个系统进行总体设计。统进行总体设计。统进行总体设计。统进行总体设计。 图

31、形界面设计的目的是优化产品的性能,使操作更人性化,图形界面设计的目的是优化产品的性能,使操作更人性化,图形界面设计的目的是优化产品的性能,使操作更人性化,图形界面设计的目的是优化产品的性能,使操作更人性化,减轻使用者的认知负担。减轻使用者的认知负担。减轻使用者的认知负担。减轻使用者的认知负担。 有了有了有了有了GUIGUI,极大地方便了非专业用户的使用。人们从此不,极大地方便了非专业用户的使用。人们从此不,极大地方便了非专业用户的使用。人们从此不,极大地方便了非专业用户的使用。人们从此不再需要死记硬背大量的命令,取而代之的是通过窗口、菜再需要死记硬背大量的命令,取而代之的是通过窗口、菜再需要死

32、记硬背大量的命令,取而代之的是通过窗口、菜再需要死记硬背大量的命令,取而代之的是通过窗口、菜单、按键等方式来方便地进行操作。单、按键等方式来方便地进行操作。单、按键等方式来方便地进行操作。单、按键等方式来方便地进行操作。18西南交通大学经济管理学院:何耀琴GUIGUI的组成的组成的组成的组成 桌面:桌面:桌面是桌面是界面中最底层,有时也指包括窗口、文件浏览器在内的界面中最底层,有时也指包括窗口、文件浏览器在内的界面中最底层,有时也指包括窗口、文件浏览器在内的界面中最底层,有时也指包括窗口、文件浏览器在内的“ “桌桌桌桌面环境面环境面环境面环境” ”。在桌面上由于可以重叠显示窗口,因此可以实现多

33、任务化。桌。在桌面上由于可以重叠显示窗口,因此可以实现多任务化。桌。在桌面上由于可以重叠显示窗口,因此可以实现多任务化。桌。在桌面上由于可以重叠显示窗口,因此可以实现多任务化。桌面与既存的文件夹构成里面相违背,所以要以特殊位置的文件夹的参照形面与既存的文件夹构成里面相违背,所以要以特殊位置的文件夹的参照形面与既存的文件夹构成里面相违背,所以要以特殊位置的文件夹的参照形面与既存的文件夹构成里面相违背,所以要以特殊位置的文件夹的参照形式来定义内容。比如在微软公司的式来定义内容。比如在微软公司的式来定义内容。比如在微软公司的式来定义内容。比如在微软公司的Windows XPWindows XP系统中

34、,各种用户的桌面系统中,各种用户的桌面系统中,各种用户的桌面系统中,各种用户的桌面内容实际保存在系统盘(默认为内容实际保存在系统盘(默认为内容实际保存在系统盘(默认为内容实际保存在系统盘(默认为C C盘):盘):盘):盘):Documents and SettingsDocuments and Settings用户用户用户用户名名名名 桌面桌面桌面桌面 文件夹里。文件夹里。文件夹里。文件夹里。 墙纸:墙纸:墙纸:墙纸:即桌面背景。可以设置为各种图片和各种附件,成为视觉美观的重即桌面背景。可以设置为各种图片和各种附件,成为视觉美观的重即桌面背景。可以设置为各种图片和各种附件,成为视觉美观的重即桌

35、面背景。可以设置为各种图片和各种附件,成为视觉美观的重要因素之一。要因素之一。要因素之一。要因素之一。 视窗视窗视窗视窗/ /窗体窗体窗体窗体/ /窗口:窗口:窗口:窗口:应用程序为使用数据而在图形用户界面中设置的基本应用程序为使用数据而在图形用户界面中设置的基本应用程序为使用数据而在图形用户界面中设置的基本应用程序为使用数据而在图形用户界面中设置的基本单元。用户可以在窗口中操作应用程序,进行数据的管理、生成和编辑。单元。用户可以在窗口中操作应用程序,进行数据的管理、生成和编辑。单元。用户可以在窗口中操作应用程序,进行数据的管理、生成和编辑。单元。用户可以在窗口中操作应用程序,进行数据的管理、

36、生成和编辑。通常在窗口四周设有菜单、图标,数据放在中央。通常在窗口四周设有菜单、图标,数据放在中央。通常在窗口四周设有菜单、图标,数据放在中央。通常在窗口四周设有菜单、图标,数据放在中央。 根据各种数据根据各种数据根据各种数据根据各种数据/ /应用程序的内容,窗口设有标题栏,并设有最大化、最小应用程序的内容,窗口设有标题栏,并设有最大化、最小应用程序的内容,窗口设有标题栏,并设有最大化、最小应用程序的内容,窗口设有标题栏,并设有最大化、最小化(隐藏窗口,并非消除数据)、最前面、缩进(仅显示标题栏)等动作化(隐藏窗口,并非消除数据)、最前面、缩进(仅显示标题栏)等动作化(隐藏窗口,并非消除数据)

37、、最前面、缩进(仅显示标题栏)等动作化(隐藏窗口,并非消除数据)、最前面、缩进(仅显示标题栏)等动作按钮。按钮。按钮。按钮。 单一文件界面:单一文件界面:单一文件界面:单一文件界面:在窗口中,一个数据在一个窗口内完成的方式。在这种在窗口中,一个数据在一个窗口内完成的方式。在这种在窗口中,一个数据在一个窗口内完成的方式。在这种在窗口中,一个数据在一个窗口内完成的方式。在这种情况下,数据和显示窗口的数量是一样的。若要在其他应用程序的窗口使情况下,数据和显示窗口的数量是一样的。若要在其他应用程序的窗口使情况下,数据和显示窗口的数量是一样的。若要在其他应用程序的窗口使情况下,数据和显示窗口的数量是一样

38、的。若要在其他应用程序的窗口使用数据,将相应生成新的窗口。因此窗口数量多,管理复杂。用数据,将相应生成新的窗口。因此窗口数量多,管理复杂。用数据,将相应生成新的窗口。因此窗口数量多,管理复杂。用数据,将相应生成新的窗口。因此窗口数量多,管理复杂。 多文件界面:多文件界面:多文件界面:多文件界面:在一个窗口之内进行多个数据管理的方式。这种情况下,在一个窗口之内进行多个数据管理的方式。这种情况下,在一个窗口之内进行多个数据管理的方式。这种情况下,在一个窗口之内进行多个数据管理的方式。这种情况下,窗口的管理简单化,但是操作变为双重管理。窗口的管理简单化,但是操作变为双重管理。窗口的管理简单化,但是操

39、作变为双重管理。窗口的管理简单化,但是操作变为双重管理。19西南交通大学经济管理学院:何耀琴GUIGUI的组成的组成的组成的组成 标签:标签:标签:标签:多文件界面的数据管理方式中使用的一种界面,将数据的标题在窗口中并多文件界面的数据管理方式中使用的一种界面,将数据的标题在窗口中并多文件界面的数据管理方式中使用的一种界面,将数据的标题在窗口中并多文件界面的数据管理方式中使用的一种界面,将数据的标题在窗口中并排,通过选择标签标题显示必要的数据,这样使得接入数据方式变得更为便捷。排,通过选择标签标题显示必要的数据,这样使得接入数据方式变得更为便捷。排,通过选择标签标题显示必要的数据,这样使得接入数

40、据方式变得更为便捷。排,通过选择标签标题显示必要的数据,这样使得接入数据方式变得更为便捷。 上述中,多文件界面主要是微软视窗系统采用。而在其他环境中,通常多是单文上述中,多文件界面主要是微软视窗系统采用。而在其他环境中,通常多是单文上述中,多文件界面主要是微软视窗系统采用。而在其他环境中,通常多是单文上述中,多文件界面主要是微软视窗系统采用。而在其他环境中,通常多是单文件界面,所以无所谓单一件界面,所以无所谓单一件界面,所以无所谓单一件界面,所以无所谓单一/ /多文件界面的称呼问题。多文件界面的称呼问题。多文件界面的称呼问题。多文件界面的称呼问题。 菜单:菜单:菜单:菜单:将系统可以执行的命令

41、以阶层的方式显示出来的一个界面。一般置于画面将系统可以执行的命令以阶层的方式显示出来的一个界面。一般置于画面将系统可以执行的命令以阶层的方式显示出来的一个界面。一般置于画面将系统可以执行的命令以阶层的方式显示出来的一个界面。一般置于画面的最上方或者最下方,应用程序能使用的所有命令几乎全部都能放入。重要程度的最上方或者最下方,应用程序能使用的所有命令几乎全部都能放入。重要程度的最上方或者最下方,应用程序能使用的所有命令几乎全部都能放入。重要程度的最上方或者最下方,应用程序能使用的所有命令几乎全部都能放入。重要程度一般是从左到右,越往右重要度越低。命定的层次根据应用程序的不同而不同,一般是从左到右

42、,越往右重要度越低。命定的层次根据应用程序的不同而不同,一般是从左到右,越往右重要度越低。命定的层次根据应用程序的不同而不同,一般是从左到右,越往右重要度越低。命定的层次根据应用程序的不同而不同,一般重视文件的操作、编辑功能,因此放在最左边,然后往右有各种设置等操作,一般重视文件的操作、编辑功能,因此放在最左边,然后往右有各种设置等操作,一般重视文件的操作、编辑功能,因此放在最左边,然后往右有各种设置等操作,一般重视文件的操作、编辑功能,因此放在最左边,然后往右有各种设置等操作,最右边往往设有帮助。一般使用鼠标的第一按钮进行操作。最右边往往设有帮助。一般使用鼠标的第一按钮进行操作。最右边往往设

43、有帮助。一般使用鼠标的第一按钮进行操作。最右边往往设有帮助。一般使用鼠标的第一按钮进行操作。 即时菜单:即时菜单:即时菜单:即时菜单:又称功能表。与应用程序准备好的层次菜单不同,在菜单栏以外的地又称功能表。与应用程序准备好的层次菜单不同,在菜单栏以外的地又称功能表。与应用程序准备好的层次菜单不同,在菜单栏以外的地又称功能表。与应用程序准备好的层次菜单不同,在菜单栏以外的地方,通过鼠标的第二按钮调出的菜单称为方,通过鼠标的第二按钮调出的菜单称为方,通过鼠标的第二按钮调出的菜单称为方,通过鼠标的第二按钮调出的菜单称为“ “即时菜单即时菜单即时菜单即时菜单” ”。根据调出位置的不同,。根据调出位置的

44、不同,。根据调出位置的不同,。根据调出位置的不同,菜单内容即时变化,列出所指示的对象目前可以进行的操作。菜单内容即时变化,列出所指示的对象目前可以进行的操作。菜单内容即时变化,列出所指示的对象目前可以进行的操作。菜单内容即时变化,列出所指示的对象目前可以进行的操作。 图标:图标:图标:图标:显示在管理数据的应用程序中的数据,或者显示应用程序本身。显示在管理数据的应用程序中的数据,或者显示应用程序本身。显示在管理数据的应用程序中的数据,或者显示应用程序本身。显示在管理数据的应用程序中的数据,或者显示应用程序本身。 数据管理程序:数据管理程序:数据管理程序:数据管理程序:即在文件夹中用户数据的管理

45、、进行特定数据管理的程序的情况即在文件夹中用户数据的管理、进行特定数据管理的程序的情况即在文件夹中用户数据的管理、进行特定数据管理的程序的情况即在文件夹中用户数据的管理、进行特定数据管理的程序的情况下,数据通过图标显示出来。通常情况下显示的是数据的内容或者与数据相关联下,数据通过图标显示出来。通常情况下显示的是数据的内容或者与数据相关联下,数据通过图标显示出来。通常情况下显示的是数据的内容或者与数据相关联下,数据通过图标显示出来。通常情况下显示的是数据的内容或者与数据相关联的应用程序的图案。另外,点击数据的图标,一般可以之间完成启动相关应用程的应用程序的图案。另外,点击数据的图标,一般可以之间

46、完成启动相关应用程的应用程序的图案。另外,点击数据的图标,一般可以之间完成启动相关应用程的应用程序的图案。另外,点击数据的图标,一般可以之间完成启动相关应用程序以后再显示数据本身这两个步骤的工作。序以后再显示数据本身这两个步骤的工作。序以后再显示数据本身这两个步骤的工作。序以后再显示数据本身这两个步骤的工作。 应用程序的图标:应用程序的图标:应用程序的图标:应用程序的图标:只能用于启动应用程序。只能用于启动应用程序。只能用于启动应用程序。只能用于启动应用程序。 按钮:按钮:按钮:按钮:菜单中,利用程度高的命令用图形表示出来,配置在应用程序中,成为按菜单中,利用程度高的命令用图形表示出来,配置在

47、应用程序中,成为按菜单中,利用程度高的命令用图形表示出来,配置在应用程序中,成为按菜单中,利用程度高的命令用图形表示出来,配置在应用程序中,成为按钮。应用程序中的按钮,通常可以代替菜单。一些使用程度高的命令,不必通过钮。应用程序中的按钮,通常可以代替菜单。一些使用程度高的命令,不必通过钮。应用程序中的按钮,通常可以代替菜单。一些使用程度高的命令,不必通过钮。应用程序中的按钮,通常可以代替菜单。一些使用程度高的命令,不必通过菜单一层层翻动才能调出,极大提高了工作效率。但是,各种用户使用的命令频菜单一层层翻动才能调出,极大提高了工作效率。但是,各种用户使用的命令频菜单一层层翻动才能调出,极大提高了

48、工作效率。但是,各种用户使用的命令频菜单一层层翻动才能调出,极大提高了工作效率。但是,各种用户使用的命令频率是不一样的,因此这种配置一般都是可以由用户自定义编辑。率是不一样的,因此这种配置一般都是可以由用户自定义编辑。率是不一样的,因此这种配置一般都是可以由用户自定义编辑。率是不一样的,因此这种配置一般都是可以由用户自定义编辑。 20西南交通大学经济管理学院:何耀琴GUI 应用领域和赛事应用领域和赛事 手机通讯移动产品手机通讯移动产品手机通讯移动产品手机通讯移动产品 电脑操作平台电脑操作平台电脑操作平台电脑操作平台 软件产品软件产品软件产品软件产品 PDAPDA产品产品产品产品 数码产品数码产

49、品数码产品数码产品 车载系统产品车载系统产品车载系统产品车载系统产品 智能家电产品智能家电产品智能家电产品智能家电产品 游戏产品游戏产品游戏产品游戏产品 产品的在线推广产品的在线推广产品的在线推广产品的在线推广 国际性竞赛国际性竞赛国际性竞赛国际性竞赛 国际上每两年举行一次国际上每两年举行一次国际上每两年举行一次国际上每两年举行一次GUIGUI锦标赛的的界面竞赛。锦标赛的的界面竞赛。锦标赛的的界面竞赛。锦标赛的的界面竞赛。“ “图图图图形用户界面大奖赛形用户界面大奖赛形用户界面大奖赛形用户界面大奖赛” ” 前身是前身是前身是前身是“ “图形用户界面奥林匹克图形用户界面奥林匹克图形用户界面奥林匹

50、克图形用户界面奥林匹克” ”,五大,五大,五大,五大ITIT社区联合主办,属于微软认证的金牌合作社区联合主办,属于微软认证的金牌合作社区联合主办,属于微软认证的金牌合作社区联合主办,属于微软认证的金牌合作计划。计划。计划。计划。20082008年大赛共有世界各国年大赛共有世界各国年大赛共有世界各国年大赛共有世界各国 26 26 个团队参加,参与个团队参加,参与个团队参加,参与个团队参加,参与 9 9 个项目,争夺共计一万二千美元的奖金(包括个项目,争夺共计一万二千美元的奖金(包括个项目,争夺共计一万二千美元的奖金(包括个项目,争夺共计一万二千美元的奖金(包括 X-Box X-Box 36036

51、0、NvidiaNvidia 显卡在内的实物奖品)。比赛集中在桌面显卡在内的实物奖品)。比赛集中在桌面显卡在内的实物奖品)。比赛集中在桌面显卡在内的实物奖品)。比赛集中在桌面背景(背景(背景(背景(WallpaperWallpaper)、桌面图标()、桌面图标()、桌面图标()、桌面图标(IconIcon)、桌面主题)、桌面主题)、桌面主题)、桌面主题(Visual StyleVisual Style)三个方面,而比赛项目的类型则分为)三个方面,而比赛项目的类型则分为)三个方面,而比赛项目的类型则分为)三个方面,而比赛项目的类型则分为“ “最实用最实用最实用最实用” ”(Most Usable

52、Most Usable)、)、)、)、“ “最具原创性最具原创性最具原创性最具原创性” ”(Most Most OriginalOriginal)、)、)、)、“ “综合最佳综合最佳综合最佳综合最佳” ”(Best OverallBest Overall)。)。)。)。 2008GUI2008GUI锦标赛我国获奖情况锦标赛我国获奖情况锦标赛我国获奖情况锦标赛我国获奖情况 我国设计师获得了我国设计师获得了我国设计师获得了我国设计师获得了1 1金金金金3 3银银银银3 3铜的好成绩。铜的好成绩。铜的好成绩。铜的好成绩。 我国设计师我国设计师我国设计师我国设计师iconboyiconboy的作品的作

53、品的作品的作品Non-Mainstream2008 Non-Mainstream2008 获得了获得了获得了获得了综合最佳桌面图标奖二等奖(综合最佳桌面图标奖二等奖(综合最佳桌面图标奖二等奖(综合最佳桌面图标奖二等奖(Best Overall Icon Best Overall Icon Package Winners 2nd PlacePackage Winners 2nd Place) 最实用桌面图标奖二等奖(最实用桌面图标奖二等奖(最实用桌面图标奖二等奖(最实用桌面图标奖二等奖(Most Usable Icon Package Most Usable Icon Package Winne

54、rs 2nd PlaceWinners 2nd Place)。)。)。)。 21西南交通大学经济管理学院:何耀琴 控件特指程序运行时有一个图形化表示的组件,它可以被控件特指程序运行时有一个图形化表示的组件,它可以被控件特指程序运行时有一个图形化表示的组件,它可以被控件特指程序运行时有一个图形化表示的组件,它可以被添加到窗体或对话框上以实现人机交互。如字体选择下拉添加到窗体或对话框上以实现人机交互。如字体选择下拉添加到窗体或对话框上以实现人机交互。如字体选择下拉添加到窗体或对话框上以实现人机交互。如字体选择下拉框、工具栏、滚动条、状态栏框、工具栏、滚动条、状态栏框、工具栏、滚动条、状态栏框、工具

55、栏、滚动条、状态栏 WindowsWindows窗体是一种用于创建程序的窗体是一种用于创建程序的窗体是一种用于创建程序的窗体是一种用于创建程序的GUIGUI。窗体可以是一。窗体可以是一。窗体可以是一。窗体可以是一个对话框、个对话框、个对话框、个对话框、SDISDI窗口、窗口、窗口、窗口、MDIMDI窗口。窗口。窗口。窗口。控件名称控件名称控件名称控件名称对应的对应的对应的对应的MFCMFC类类类类静态控件静态控件静态控件静态控件CStaticCStatic下压控件下压控件下压控件下压控件CButtonCButton单选按钮单选按钮单选按钮单选按钮CButtonCButton复选框复选框复选框复

56、选框CButtonCButton编辑框控件编辑框控件编辑框控件编辑框控件CEditCEdit列表框控件列表框控件列表框控件列表框控件CListBoxCListBox组合框控件组合框控件组合框控件组合框控件CComboBoxCComboBox滚动条控件滚动条控件滚动条控件滚动条控件CScrollBarCScrollBar列表控件列表控件列表控件列表控件CListCtrlCListCtrlTabTab控件控件控件控件CTabCtrlCTabCtrl5.4 5.4 常用控件常用控件常用控件常用控件VC+VC+中工具箱内有多种类中工具箱内有多种类中工具箱内有多种类中工具箱内有多种类型的控件和组件。型的

57、控件和组件。型的控件和组件。型的控件和组件。 在在在在MFCMFC中,每一种控件都有其对中,每一种控件都有其对中,每一种控件都有其对中,每一种控件都有其对应的应的应的应的MFCMFC控件类,而所有的控件控件类,而所有的控件控件类,而所有的控件控件类,而所有的控件类都派生于类都派生于类都派生于类都派生于CWndCWnd类,通过控件类,通过控件类,通过控件类,通过控件类开发人员可以很容易地实现对类开发人员可以很容易地实现对类开发人员可以很容易地实现对类开发人员可以很容易地实现对控件的控制和对控件事件和处理。控件的控制和对控件事件和处理。控件的控制和对控件事件和处理。控件的控制和对控件事件和处理。

58、MFCMFC中所包含的控件类如表中所中所包含的控件类如表中所中所包含的控件类如表中所中所包含的控件类如表中所示。示。示。示。22西南交通大学经济管理学院:何耀琴使用控件的步骤使用控件的步骤(1)准备对话框:对话框相当于控件的容器)准备对话框:对话框相当于控件的容器(2)添加控件:从工具箱中将控件添加到对话框上;)添加控件:从工具箱中将控件添加到对话框上;(3)设置控件的属性。通过属性可以定义控件的名称、样式、大小、位)设置控件的属性。通过属性可以定义控件的名称、样式、大小、位置、字体颜色等。置、字体颜色等。(4)映射控制变量或对象:在程序中,控件必须映射为一个值变量)映射控制变量或对象:在程序

59、中,控件必须映射为一个值变量(value)或控件对象或控件对象(control)。这样程序运行时就可以象控制变量一。这样程序运行时就可以象控制变量一样控制控件了。例如一个文本编辑框可以映射为样控制控件了。例如一个文本编辑框可以映射为CString值或值或CEdit对对象象, CString是一个字符串,而是一个字符串,而CEdit是是MFC为文本编辑框专门准备的为文本编辑框专门准备的控件类。控件类。(5)编写响应控件事件函数:控件都是有事件的,如按下鼠标左键或右)编写响应控件事件函数:控件都是有事件的,如按下鼠标左键或右键,或选择键,或选择“确定确定”或或“取消取消”等。应编制好响应函数。等。

60、应编制好响应函数。(6)调用控件方法:既然控件可以映射成对象变量,就可以用调用其成)调用控件方法:既然控件可以映射成对象变量,就可以用调用其成员函数(或方法,员函数(或方法,method)来完成特定的功能)来完成特定的功能 。23西南交通大学经济管理学院:何耀琴案例:静态控件的使用案例:静态控件的使用 静态控件包括静态控件包括静态控件包括静态控件包括静态文本控件静态文本控件静态文本控件静态文本控件和和和和静态静态静态静态picturepicture控件控件控件控件两种,用于显两种,用于显两种,用于显两种,用于显示要在对话框中出现的文本和图片。示要在对话框中出现的文本和图片。示要在对话框中出现的

61、文本和图片。示要在对话框中出现的文本和图片。 往对话框中添加静态控件时,控件的所有往对话框中添加静态控件时,控件的所有往对话框中添加静态控件时,控件的所有往对话框中添加静态控件时,控件的所有IDID都被自动设置成都被自动设置成都被自动设置成都被自动设置成IDC_STATICIDC_STATIC,因此,如果要为静态控件添加控制变量或事,因此,如果要为静态控件添加控制变量或事,因此,如果要为静态控件添加控制变量或事,因此,如果要为静态控件添加控制变量或事件处理函数,必须重新指定一个唯一的件处理函数,必须重新指定一个唯一的件处理函数,必须重新指定一个唯一的件处理函数,必须重新指定一个唯一的IDID值

62、。修改值。修改值。修改值。修改IDID值可在值可在值可在值可在静态控件的静态控件的静态控件的静态控件的“ “属性属性属性属性” ”窗口中进行。窗口中进行。窗口中进行。窗口中进行。 使用静态控件的流程:使用静态控件的流程:使用静态控件的流程:使用静态控件的流程: (1 1)创建一个单文档工程)创建一个单文档工程)创建一个单文档工程)创建一个单文档工程StaticControlStaticControl并添加对话框;并添加对话框;并添加对话框;并添加对话框; (2 2)创建一个非模态对话框并添加静态控件并设置静态文)创建一个非模态对话框并添加静态控件并设置静态文)创建一个非模态对话框并添加静态控件

63、并设置静态文)创建一个非模态对话框并添加静态控件并设置静态文本控件及静态本控件及静态本控件及静态本控件及静态picturepicture控件的属性,为控件映射控制变量。控件的属性,为控件映射控制变量。控件的属性,为控件映射控制变量。控件的属性,为控件映射控制变量。 (3 3)重载对话框类的)重载对话框类的)重载对话框类的)重载对话框类的OnInitDialogOnInitDialog() ()函数,在函数中为函数,在函数中为函数,在函数中为函数,在函数中为picturepicture控件加载位图。控件加载位图。控件加载位图。控件加载位图。24西南交通大学经济管理学院:何耀琴具体步骤:具体步骤:

64、(1 1)创建一个单文档工程)创建一个单文档工程)创建一个单文档工程)创建一个单文档工程StaticControlStaticControl;(2 2)在资源视图中用右键菜单)在资源视图中用右键菜单)在资源视图中用右键菜单)在资源视图中用右键菜单“ “添加添加添加添加” ”“ “资源资源资源资源” ”向向向向MFCMFC工程中添加一个对话框资源,屏幕上会出现对话框模板;工程中添加一个对话框资源,屏幕上会出现对话框模板;工程中添加一个对话框资源,屏幕上会出现对话框模板;工程中添加一个对话框资源,屏幕上会出现对话框模板;(3 3)双击对话框模板,定义一个派生类)双击对话框模板,定义一个派生类)双击

65、对话框模板,定义一个派生类)双击对话框模板,定义一个派生类“ “CMyDialogCMyDialog”;”;(4 4)返回)返回)返回)返回“ “解决方案资源管理器解决方案资源管理器解决方案资源管理器解决方案资源管理器” ”窗口,双击打开主头文窗口,双击打开主头文窗口,双击打开主头文窗口,双击打开主头文件件件件“ “StaticControl.hStaticControl.h” ”,添加包含定义对话框的头文件,添加包含定义对话框的头文件,添加包含定义对话框的头文件,添加包含定义对话框的头文件MyDialog.hMyDialog.h的语句的语句的语句的语句“ “#include ”MyDialo

66、g.h“#include ”MyDialog.h“ ” ”,并定义一,并定义一,并定义一,并定义一个指针对象个指针对象个指针对象个指针对象CMyDialog *CMyDialog *d dlg;lg; 见图所示。见图所示。见图所示。见图所示。25西南交通大学经济管理学院:何耀琴定义指针变量定义指针变量添加包含语句添加包含语句26西南交通大学经济管理学院:何耀琴(4 4)双击打开应用程序)双击打开应用程序)双击打开应用程序)双击打开应用程序“ “StaticControl.cppStaticControl.cpp” ”,在初始化,在初始化,在初始化,在初始化函数函数函数函数“ “BOOL CSt

67、aticControlApp:InitInstance()BOOL CStaticControlApp:InitInstance()” ”中找到中找到中找到中找到下面位置后添加语句。下面位置后添加语句。下面位置后添加语句。下面位置后添加语句。 完成非模态对话框的创建。见下完成非模态对话框的创建。见下完成非模态对话框的创建。见下完成非模态对话框的创建。见下图所示。图所示。图所示。图所示。添加添加27西南交通大学经济管理学院:何耀琴 (5 5)切换到资源视图,右击工程项目名)切换到资源视图,右击工程项目名)切换到资源视图,右击工程项目名)切换到资源视图,右击工程项目名“ “StaticContro

68、lStaticControl” “” “添加添加添加添加” ” “资源资源资源资源” ”,向单文档工程中导入一个位图资源,向单文档工程中导入一个位图资源,向单文档工程中导入一个位图资源,向单文档工程中导入一个位图资源BitmapBitmap并新建一个并新建一个并新建一个并新建一个DialogDialog资源?资源?资源?资源?,这个位图资源可以是事先放好在某个文件中的位图文,这个位图资源可以是事先放好在某个文件中的位图文,这个位图资源可以是事先放好在某个文件中的位图文,这个位图资源可以是事先放好在某个文件中的位图文件。这里导入了一个衬衣件。这里导入了一个衬衣件。这里导入了一个衬衣件。这里导入了

69、一个衬衣.bmp.bmp位图。如图所示。位图。如图所示。位图。如图所示。位图。如图所示。28西南交通大学经济管理学院:何耀琴29西南交通大学经济管理学院:何耀琴(6 6)展开资源视图树形结构,双击新添加的类模板)展开资源视图树形结构,双击新添加的类模板)展开资源视图树形结构,双击新添加的类模板)展开资源视图树形结构,双击新添加的类模板IDD_DIALOG1IDD_DIALOG1,打开,打开,打开,打开DialogDialog模板。模板。模板。模板。30西南交通大学经济管理学院:何耀琴(7 7)从工具箱中向对话框模板添)从工具箱中向对话框模板添)从工具箱中向对话框模板添)从工具箱中向对话框模板添

70、加一个静态文本框控件加一个静态文本框控件加一个静态文本框控件加一个静态文本框控件StaticTextStaticText 和和和和 一个一个一个一个PictruePictrue Control Control 控件,见图所示。控件,见图所示。控件,见图所示。控件,见图所示。(8 8)选择)选择)选择)选择“ “视图视图视图视图” “” “其他窗口其他窗口其他窗口其他窗口” ” “属性窗口属性窗口属性窗口属性窗口” ”,打开属性窗口。,打开属性窗口。,打开属性窗口。,打开属性窗口。31西南交通大学经济管理学院:何耀琴(9 9)选择)选择)选择)选择“ “静态文本静态文本静态文本静态文本” ”框,

71、在框,在框,在框,在“ “静态文本静态文本静态文本静态文本” ”框的框的框的框的“ “Caption”Caption”属性中,将属性中,将属性中,将属性中,将“ “Caption”Caption”的值的值的值的值“ “静态静态静态静态” ”改为改为改为改为“ “在静态控件在静态控件在静态控件在静态控件picturepicture中显示一幅位图中显示一幅位图中显示一幅位图中显示一幅位图” ”。(1010)选中)选中)选中)选中picturepicture控件,由于所有静态变量控件的控件,由于所有静态变量控件的控件,由于所有静态变量控件的控件,由于所有静态变量控件的IDID都被都被都被都被设置成了

72、设置成了设置成了设置成了IDC_STATICIDC_STATIC,因此,如果要为静态控件添加控,因此,如果要为静态控件添加控,因此,如果要为静态控件添加控,因此,如果要为静态控件添加控制变量或事件处理函数,必须修改制变量或事件处理函数,必须修改制变量或事件处理函数,必须修改制变量或事件处理函数,必须修改IDID值。可在静态控件的值。可在静态控件的值。可在静态控件的值。可在静态控件的“ “属性属性属性属性” ”窗口中进行修改。窗口中进行修改。窗口中进行修改。窗口中进行修改。(1111)这里将其)这里将其)这里将其)这里将其IDID值修改为值修改为值修改为值修改为“ “IDC_STATIC1”ID

73、C_STATIC1”,将其,将其,将其,将其“ “Type”Type”属性值选择修改为属性值选择修改为属性值选择修改为属性值选择修改为“ “Bitmap”Bitmap”,即位图。,即位图。,即位图。,即位图。32西南交通大学经济管理学院:何耀琴(1212)右键单击)右键单击)右键单击)右键单击PicturePicture控件,选择控件,选择控件,选择控件,选择“ “添加变量添加变量添加变量添加变量” ”。(1313)通过添加成员变量向导对话框,)通过添加成员变量向导对话框,)通过添加成员变量向导对话框,)通过添加成员变量向导对话框,PicturePicture控件,选择控件,选择控件,选择控件

74、,选择“ “添加变量添加变量添加变量添加变量” ”, ,为为为为PicturePicture控件添加一个控制变量控件添加一个控制变量控件添加一个控制变量控件添加一个控制变量m_picturem_picture。 单击单击单击单击“ “完成完成完成完成” ”。在。在。在。在MyDialogMyDialog.h.h头文头文头文头文件中,可看到对件中,可看到对件中,可看到对件中,可看到对m_picturem_picture的定义。的定义。的定义。的定义。33西南交通大学经济管理学院:何耀琴(1414)用鼠标单击类的声明)用鼠标单击类的声明)用鼠标单击类的声明)用鼠标单击类的声明“ “class CM

75、yDialog : public CDialogclass CMyDialog : public CDialog” ”中的中的中的中的 CMyDialogCMyDialog,并单击右边属性窗口中的,并单击右边属性窗口中的,并单击右边属性窗口中的,并单击右边属性窗口中的“ “重写重写重写重写” ”按钮,在下面的列表中按钮,在下面的列表中按钮,在下面的列表中按钮,在下面的列表中找到找到找到找到OnInitDialogOnInitDialog并单击右边下拉菜单选择添加并单击右边下拉菜单选择添加并单击右边下拉菜单选择添加并单击右边下拉菜单选择添加OnInitDialogOnInitDialog() (

76、)函数。函数。函数。函数。操作后马上可看到头文件中出现了函数的声明语句。操作后马上可看到头文件中出现了函数的声明语句。操作后马上可看到头文件中出现了函数的声明语句。操作后马上可看到头文件中出现了函数的声明语句。(1515)在)在)在)在MyDialog.hMyDialog.h头文件中定义一个头文件中定义一个头文件中定义一个头文件中定义一个CBitmapCBitmap类对象类对象类对象类对象bitmap;bitmap;定义对象定义对象34西南交通大学经济管理学院:何耀琴(1616)在)在)在)在MyDialog.cppMyDialog.cpp的的的的OnInitDialogOnInitDialo

77、g() ()函数中,函数中,函数中,函数中,为为为为picturepicture控件添加加载位图的语句。控件添加加载位图的语句。控件添加加载位图的语句。控件添加加载位图的语句。添加的语句添加的语句添加的语句添加的语句35西南交通大学经济管理学院:何耀琴(1717)单击)单击)单击)单击“ “启动调试启动调试启动调试启动调试” ”按钮运行程序。可以看到在对话框中,静态按钮运行程序。可以看到在对话框中,静态按钮运行程序。可以看到在对话框中,静态按钮运行程序。可以看到在对话框中,静态文本框显示了我们给出的一段文字,而文本框显示了我们给出的一段文字,而文本框显示了我们给出的一段文字,而文本框显示了我们

78、给出的一段文字,而picturepicture控件则显示了我们加控件则显示了我们加控件则显示了我们加控件则显示了我们加载的一幅位图图片。载的一幅位图图片。载的一幅位图图片。载的一幅位图图片。36西南交通大学经济管理学院:何耀琴归纳归纳控件可以通过控件可以通过5个部分进行描述:个部分进行描述: 1. ID(控件的标识,用于在程序中调用控件)(控件的标识,用于在程序中调用控件) 2. 控件实体(添加到对话框中的图形)控件实体(添加到对话框中的图形) 3. 控件变量()控件变量() 4. 属性函数属性函数 5. 消息函数消息函数 MFCMFCMFCMFC中关联一个控件和变量的时候,可以选择是控件方式

79、还是值方中关联一个控件和变量的时候,可以选择是控件方式还是值方中关联一个控件和变量的时候,可以选择是控件方式还是值方中关联一个控件和变量的时候,可以选择是控件方式还是值方式,如果是控件方式,那么就是这个变量就代表了控件,如果是值式,如果是控件方式,那么就是这个变量就代表了控件,如果是值式,如果是控件方式,那么就是这个变量就代表了控件,如果是值式,如果是控件方式,那么就是这个变量就代表了控件,如果是值方式,那么这个变量就代表了控件中显示的值。比如你说的静态控方式,那么这个变量就代表了控件中显示的值。比如你说的静态控方式,那么这个变量就代表了控件中显示的值。比如你说的静态控方式,那么这个变量就代表

80、了控件中显示的值。比如你说的静态控件,可以与件,可以与件,可以与件,可以与CStaticCStaticCStaticCStatic类型的变量关联,也可以与类型的变量关联,也可以与类型的变量关联,也可以与类型的变量关联,也可以与CStringCStringCStringCString类型的变量类型的变量类型的变量类型的变量关联。关联。关联。关联。 所谓的关联,只是所谓的关联,只是所谓的关联,只是所谓的关联,只是MFCMFCMFCMFC的一层封装而已,内部还是采用的一层封装而已,内部还是采用的一层封装而已,内部还是采用的一层封装而已,内部还是采用Windows SDKWindows SDKWind

81、ows SDKWindows SDK来操作的。来操作的。来操作的。来操作的。37西南交通大学经济管理学院:何耀琴可添加到项目中的资源可添加到项目中的资源AcceleratorAccelerator:快捷键:快捷键:快捷键:快捷键BitmapBitmap:位图:位图:位图:位图CursorCursor:标尺:标尺:标尺:标尺DialogDialog:对话框:对话框:对话框:对话框HTMLHTML:网页:网页:网页:网页IconIcon:图标:图标:图标:图标MenuMenu:菜单:菜单:菜单:菜单StingTabStingTab:字符表:字符表:字符表:字符表ToolbarToolbar:工具条

82、:工具条:工具条:工具条VersionVersion:版本信息:版本信息:版本信息:版本信息38西南交通大学经济管理学院:何耀琴可添加到对话框中控件可添加到对话框中控件可添加到对话框中控件可添加到对话框中控件下压按钮控件下压按钮控件下压按钮控件下压按钮控件编辑按钮控件编辑按钮控件编辑按钮控件编辑按钮控件 复选框控件复选框控件复选框控件复选框控件 列表框控件列表框控件列表框控件列表框控件 单选按钮控件单选按钮控件单选按钮控件单选按钮控件图片图片图片图片 控件控件控件控件垂直滚动条控件垂直滚动条控件垂直滚动条控件垂直滚动条控件旋转旋转旋转旋转 控件控件控件控件热键控件热键控件热键控件热键控件树结构

83、树结构树结构树结构 控件控件控件控件水平滚动条控件水平滚动条控件水平滚动条控件水平滚动条控件动画动画动画动画 控件控件控件控件日期时间选择控件日期时间选择控件日期时间选择控件日期时间选择控件IPIP地址控件地址控件地址控件地址控件自定义控件自定义控件自定义控件自定义控件分离按钮控件分离按钮控件分离按钮控件分离按钮控件命令按钮控件命令按钮控件命令按钮控件命令按钮控件静态文本框控件静态文本框控件静态文本框控件静态文本框控件分组框控件分组框控件分组框控件分组框控件组合框控件组合框控件组合框控件组合框控件滑块控件滑块控件滑块控件滑块控件进度控件进度控件进度控件进度控件列表控件列表控件列表控件列表控件T

84、abTab键控件键控件键控件键控件带标尺的编辑器控件带标尺的编辑器控件带标尺的编辑器控件带标尺的编辑器控件 月历控件月历控件月历控件月历控件扩展组合框扩展组合框扩展组合框扩展组合框超链接控件超链接控件超链接控件超链接控件网络地址控件网络地址控件网络地址控件网络地址控件39西南交通大学经济管理学院:何耀琴主要属性及含义:主要属性及含义: Accept FileAccept File:指定控件要接受拖放的文件:指定控件要接受拖放的文件:指定控件要接受拖放的文件:指定控件要接受拖放的文件 CaptionCaption(标题):显示在按钮上的文本(标题):显示在按钮上的文本(标题):显示在按钮上的文本

85、(标题):显示在按钮上的文本 BitmapBitmap:指定控件显示位图而非文本:指定控件显示位图而非文本:指定控件显示位图而非文本:指定控件显示位图而非文本 AccleratorAcclerator:快捷键编辑器:快捷键编辑器:快捷键编辑器:快捷键编辑器 Client EdgeClient Edge:指定控件为带凹陷性边缘的边框:指定控件为带凹陷性边缘的边框:指定控件为带凹陷性边缘的边框:指定控件为带凹陷性边缘的边框 Default ButtonDefault Button:指定控件是对话框默认的按钮:指定控件是对话框默认的按钮:指定控件是对话框默认的按钮:指定控件是对话框默认的按钮 Dis

86、ableDisable:指定最初禁用控件:指定最初禁用控件:指定最初禁用控件:指定最初禁用控件 FlatFlat:指定控件的可视外观是二维的:指定控件的可视外观是二维的:指定控件的可视外观是二维的:指定控件的可视外观是二维的 GroupGroup:指定基于:指定基于:指定基于:指定基于TabTab键顺序的一组控件中的第一个控件键顺序的一组控件中的第一个控件键顺序的一组控件中的第一个控件键顺序的一组控件中的第一个控件 Help IDHelp ID:给控件分配基于资源:给控件分配基于资源:给控件分配基于资源:给控件分配基于资源IDID的帮助的帮助的帮助的帮助IDID Horizontal Alig

87、nmentHorizontal Alignment:指定水平对齐方式:指定水平对齐方式:指定水平对齐方式:指定水平对齐方式 可选择其中一种可选择其中一种可选择其中一种可选择其中一种默认值默认值默认值默认值Left-Left-左对齐左对齐左对齐左对齐Right-Right-右对齐右对齐右对齐右对齐CenterCenter居中居中居中居中40西南交通大学经济管理学院:何耀琴 3D Look 3D Look :是否具有:是否具有:是否具有:是否具有3D3D效果;效果;效果;效果; Absolute Align: Absolute Align: 绝对位置;绝对位置;绝对位置;绝对位置; IconIco

88、n:指定控件显示为图标而非文本;:指定控件显示为图标而非文本;:指定控件显示为图标而非文本;:指定控件显示为图标而非文本; IDID:指定控件的标识符;:指定控件的标识符;:指定控件的标识符;:指定控件的标识符; Modal FrameModal Frame:指定控件将具有双边框;:指定控件将具有双边框;:指定控件将具有双边框;:指定控件将具有双边框; MultilineMultiline:指定控件文本太长时可以折为多行显示;:指定控件文本太长时可以折为多行显示;:指定控件文本太长时可以折为多行显示;:指定控件文本太长时可以折为多行显示; NotifyNotify:指定控件向父级发送焦点通知;

89、:指定控件向父级发送焦点通知;:指定控件向父级发送焦点通知;:指定控件向父级发送焦点通知; Owner DrawOwner Draw:指定按钮为所有者描述的按钮;:指定按钮为所有者描述的按钮;:指定按钮为所有者描述的按钮;:指定按钮为所有者描述的按钮; Right Align TextRight Align Text:指定控件的文本右对齐;:指定控件的文本右对齐;:指定控件的文本右对齐;:指定控件的文本右对齐; Left Align TextLeft Align Text:指定控件的文本左对齐;:指定控件的文本左对齐;:指定控件的文本左对齐;:指定控件的文本左对齐; Static EdgeSt

90、atic Edge:指定控件具有三维边框;:指定控件具有三维边框;:指定控件具有三维边框;:指定控件具有三维边框; TabStopTabStop:指定用户可以用:指定用户可以用:指定用户可以用:指定用户可以用TabTab键移动光标到该控件;键移动光标到该控件;键移动光标到该控件;键移动光标到该控件; TransParentTransParent:指定控件将具有透明背景:指定控件将具有透明背景:指定控件将具有透明背景:指定控件将具有透明背景41西南交通大学经济管理学院:何耀琴 Horizontal AlignmentHorizontal Alignment:指定水平对齐方式:指定水平对齐方式:指

91、定水平对齐方式:指定水平对齐方式 可选择其中一种可选择其中一种可选择其中一种可选择其中一种 VisableVisable:指定控件最初可见;:指定控件最初可见;:指定控件最初可见;:指定控件最初可见; Tri-StateTri-State:指定复选框是三种状态;:指定复选框是三种状态;:指定复选框是三种状态;:指定复选框是三种状态; Push LikePush Like:指定控件的外观和行为与普通控件一样;:指定控件的外观和行为与普通控件一样;:指定控件的外观和行为与普通控件一样;:指定控件的外观和行为与普通控件一样; Auto Auto HScrollHScroll:指定编辑控件中用户输入的

92、文本水平滚动;:指定编辑控件中用户输入的文本水平滚动;:指定编辑控件中用户输入的文本水平滚动;:指定编辑控件中用户输入的文本水平滚动; Lower CaseLower Case:编辑控件中输入的字符全部转换为小写字符;:编辑控件中输入的字符全部转换为小写字符;:编辑控件中输入的字符全部转换为小写字符;:编辑控件中输入的字符全部转换为小写字符; Upper CaseUpper Case:编辑控件中输入的字符全部转换为大写字符;:编辑控件中输入的字符全部转换为大写字符;:编辑控件中输入的字符全部转换为大写字符;:编辑控件中输入的字符全部转换为大写字符; No Hide No Hide Seleti

93、onSeletion:没有焦点时也显示某选定内容;:没有焦点时也显示某选定内容;:没有焦点时也显示某选定内容;:没有焦点时也显示某选定内容; NumberNumber:指定编辑控件中只能输入数字;:指定编辑控件中只能输入数字;:指定编辑控件中只能输入数字;:指定编辑控件中只能输入数字; OEM ConvertOEM Convert:将输入到编辑框中的文本转换成:将输入到编辑框中的文本转换成:将输入到编辑框中的文本转换成:将输入到编辑框中的文本转换成OEMOEM字符集字符集字符集字符集( OEMOEM字符集有好几套,分别对应不同的字符集有好几套,分别对应不同的字符集有好几套,分别对应不同的字符集

94、有好几套,分别对应不同的PCPC)默认值默认值默认值默认值Bottom-Bottom-底部对齐底部对齐底部对齐底部对齐Top-Top-顶部对齐顶部对齐顶部对齐顶部对齐CenterCenter居中对齐居中对齐居中对齐居中对齐42西南交通大学经济管理学院:何耀琴ASCIIASCII码字符集码字符集码字符集码字符集OEMOEM字符集字符集字符集字符集43西南交通大学经济管理学院:何耀琴主要属性及含义:主要属性及含义: PasswordPassword:对输入到编辑框中去的字符全显示为:对输入到编辑框中去的字符全显示为:对输入到编辑框中去的字符全显示为:对输入到编辑框中去的字符全显示为“ * ”“ *

95、 ”; ; Read OnlyRead Only:禁止用户输入文本到编辑框;:禁止用户输入文本到编辑框;:禁止用户输入文本到编辑框;:禁止用户输入文本到编辑框; Want ReturnWant Return:允许编辑框接受:允许编辑框接受:允许编辑框接受:允许编辑框接受EnterEnter键;键;键;键; No Integral HeightNo Integral Height:指定组合框的大小正好是应用程序指定的大小;:指定组合框的大小正好是应用程序指定的大小;:指定组合框的大小正好是应用程序指定的大小;:指定组合框的大小正好是应用程序指定的大小; Right To Left Reading

96、 OrderRight To Left Reading Order:指定从右到左的阅读顺序;:指定从右到左的阅读顺序;:指定从右到左的阅读顺序;:指定从右到左的阅读顺序; SortSort:对添加到列表框中的字符串进行自动排序;:对添加到列表框中的字符串进行自动排序;:对添加到列表框中的字符串进行自动排序;:对添加到列表框中的字符串进行自动排序; TypeType:类型(简单的:类型(简单的:类型(简单的:类型(简单的-Simple-Simple、下拉、下拉、下拉、下拉- -DropDownDropDown、下拉列表、下拉列表、下拉列表、下拉列表Drop Drop ListList); ; 数据:指定用来填充控件的数据,数据之间用分号分隔;数据:指定用来填充控件的数据,数据之间用分号分隔;数据:指定用来填充控件的数据,数据之间用分号分隔;数据:指定用来填充控件的数据,数据之间用分号分隔;44西南交通大学经济管理学院:何耀琴

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号