- 11
- 0
- 约3.9万字
- 约 124页
- 2021-09-17 发布于安徽
- 举报
第5章 常用控件创建和使用控件01 控件的创建方式 控件的创建方式控件的创建方式有以下两种:一种是可视化方式在对话框模板中用编辑器指定控件,也就是说,将对话框看作控件的父窗口。这样做的好处是显而易见的,因为当应用程序启动该对话框时,Windows系统就会为对话框创建控件,而当对话框消失时,控件也随之自动清除。另一种是编程方式,即调用MFC相应控件类的成员函数Create来创建,并在Create函数指定控件的父窗口指针。例如,下面的示例过程。【例Ex_Create】 使用编程方式来创建一个按钮① 启动Visual C++ 6.0,选择“文件”→“新建”菜单命令,在弹出的“新建”对话框的工程标签页面中,选择MFC AppWizard(exe)的项目类型。单击位置框右侧的按钮 ,在弹出的对话框中,将该应用程序的文件夹定位在“D:\Visual C++程序\第5章”,并在“工程名称”编辑框中输入应用程序名Ex_Create。② 单击 按钮进入下一步,从弹出的“步骤1”对话框中,选择“基本对话框”应用程序类型。单击 按钮,出现一个信息对话框,显示出用户在前面几个步骤中做出的选择,单击 按钮,系统开始创建,并又回到了Visual C++ 6.0的主界面。这样,一个默认的基于对话框的应用程序项目Ex_Create就创建好了。控件的创建方式③ 将项目工作区切换到ClassView页面,展开Ex_Create所有的类节点,右击CEx_CreateDlg类名,弹出如图5.1所示的快捷菜单。从快捷菜单中选择Add Member Variable(添加成员变量),出现如图5.2所示的对话框,在Variable Type(变量类型)编辑框中输入CButton(MFC按钮类),在Variable Name(变量名) 编辑框中输入要定义的CButton类对象名m_btnWnd。注意:对象名通常以“m_”作为开头,表示“成员”(member)的意思。单击 按钮。控件的创建方式④ 在项目工作区窗口的ClassView页面中,将CEx_CreateDlg节点展开,双击OnInitDialog函数名,在该函数中添加下列代码(return TRUE;语句之前添加):BOOL CEx_CreateDlg::OnInitDialog(){ CDialog::OnInitDialog(); //… m_btnWnd.Create(你好, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | WS_TABSTOP, CRect(20, 20, 120, 40), this, 201); // 创建 CFont *font = this-GetFont(); // 获取对话框的字体 m_btnWnd.SetFont(font); // 设置控件字体 return TRUE; // return TRUE unless you set the focus to a control}控件的创建方式分析和说明:? 以前曾说过,由于OnInitDialog函数在对话框初始化时被调用,因此将对话框中的一些初始化代码都添加在此函数中。? 由于Windows操作系统使用的是图形界面,因此在MFC中,对于每种界面元素的几何大小和位置常使用CPoint类(点)、CSize类(大小)和CRect类(矩形)来描述(以后还会讨论)。? 代码中,CButton类成员函数Create用来创建按钮控件,该函数第1个参数用来指定按钮的标题,第2个参数指定按钮控件的样式,其中BS_PUSHBUTTON(以BS_开头的)是按钮类封装的预定义样式,表示创建的创建的是按键按钮。WS_CHILD(子窗口)、WS_VISIBLE(可见)、WS_TABSTOP(可用Tab键选择)等都是CWnd类封装的预定义窗口样式,它们都可以直接引用,当多个样式指定时,需要使用按位或运算符“|”来连接。第3个参数用来指定它在父窗口中的位置和大小,第4个参数用来指定父窗口指针,最后一个参数是指定该控件的标识值。? 由于按钮是作为对话框的一个子窗口来创建的,因此WS_CHILD样式是必不可少的,且还要使用WS_VISIBLE使控件在创建后显示出来。控件的创建方式⑤ 编译并运行,结果如图5.3所示。02控件的消息及消息映射1.映射控件消息2.映射控件通用消息控件的消息及消息映射1.映射控件消息不管是什么控件消息,一般都可以用MFC ClassWizard对它们加以映射,如下面的过程:①将项目工作区窗口切换到ResourseView页面,双击Dialog资源下的标识IDD_EX_CREATE_D
您可能关注的文档
- 《Verilog HDL数字设计与综合(第二版)》教学课件—第9章.实用建模技术.ppt
- 《Verilog HDL数字设计与综合(第二版)》教学课件—第10章.时序和延迟.ppt
- 《Verilog HDL数字设计与综合(第二版)》教学课件—第14章.使用Verilog HDL进行逻辑综合.ppt
- 《Visual C 实用教程(第6版)》教学课件—第1章 基本C++语言.pptx
- 《Visual C 实用教程(第6版)》教学课件—第2章 C++面向对象程序设计.pptx
- 《Visual C 实用教程(第6版)》教学课件—第3章 MFC基本应用程序的建立.pptx
- 《Visual C 实用教程(第6版)》教学课件—第4章 窗口和对话框.pptx
- 《Visual C 实用教程(第6版)》教学课件—第6章 基本界面元素.pptx
- 《Visual C 实用教程(第6版)》教学课件—第7章 文档和视图.pptx
- 《Visual C 实用教程(第6版)》教学课件—第8章 图形和文本.pptx
最近下载
- CECS304-2011 建筑用金属面绝热夹芯板安装及验收规程.docx VIP
- 基于大数据的电池新材料设计.docx VIP
- XF_T 87-2023 防火刨花板XF_T 87-2023 防火刨花板.docx VIP
- 2026年新能源大数据行业数据安全报告.docx VIP
- 春节加班奖励报告通知模板.docx VIP
- T_SXCAS 043-2025 公路路面基层煤矸石细集料应用技术标准.docx VIP
- DB61_T 2005-2025 道路多孔水泥混凝土路面施工技术规范.docx VIP
- DB11_T 1322.81-2025 安全生产等级评定技术规范 第81部分:歌舞娱乐场所.pdf VIP
- DB51_T 3317-2025 高寒草地生态修复碳汇核算技术规范.pdf VIP
- DB51_T 3312-2025 四川省斜坡地质灾害隐患风险详查技术指南.pdf VIP
原创力文档

文档评论(0)