《VC++常用控件的使用.doc》由会员分享,可在线阅读,更多相关《VC++常用控件的使用.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、XX大学 教 案2007 2008 学年第一学期主 讲 教 师课 程 名 称面向对象程序设计(VC+)课程类别专业基础课学时及学分80、4授 课 班 级使 用 教 材 VC+的使用及面向对象软件工程实例分析系(院、部) 计算机教研室(实验室) 计算机应用教研室课时授课计划课次序号: 一、课题:第3章 常用控件的使用(1)控件的基本概念、静态框、编辑框二、课型:讲授三、目的要求:1、 理解有关控件的基本概念控件、控件类型、控件类、控件的消息、控件的使用2、 熟悉静态文本控件和文本编辑框控件对应的类、主要成员函数、控件风格3、 掌握在对话框中使用静态文本控件和文本编辑控件的方法。4、 深入理解对话
2、框应用程序的结构和运行机制。四、重点、难点:重点内容是控件的使用,难点是理解控件的消息传递和处理过程。 五、教学方法及手段:利用实例认识控件的作用及使用方法,然后扩展到控件的消息、对应的类、控件类的主要成员函数、控件风格的使用。并结合实例分析利用类向导创建的对话框应用程序的结构和运行机制。幻灯片显示与VC+环境下的实例开发相结合,强调动手实践能力的培养。本章各种控件的学习具有相似之处,要学会总结并举一反三。六、参考资料:VC+的使用及面向对象软件工程实例分析第3章,贺怀清等编电子工业出版社VC+使用教程(第2版)第5章,郑阿奇等编,电子工业出版社七、作业:补充题1个,选作题1个。八、授课记录:
3、授课日期班次九、授课效果分析:十、教学进程(教学内容、教学环节及时间分配等)1、 复习对话框应用程序的创建步骤:创建应用程序框架、对话框模板的设计、对话框类的设计。利用类向导添加对话框类的成员变量和消息映射函数的方法。对话框应用程序的运行机制和对话框的使用步骤。2、 导入课题控件是可视化开发中的重要组成部分,特别是在对话框中,用户与程序的交互大都是通过控件来实现。本章将分别介绍Windows的传统控件和新型控件的特点和使用方法。3、 教学内容ch3.1 控件的基本概念一、 什么是控件?控件本质上就是窗口,通常作为对话框的子窗口使用。主要用于对话框应用程序中。但是也可以在非对话框窗口中使用控件(
4、如工具栏、状态栏、表单视图)。控件类的基类是CWnd类。二、 控件类型传统控件:在Windows 3.x中使用的;如静态文本、命令按钮、编辑框、单选/复选按钮、列表框、组合框、滚动条等;新型控件:在Windows952000中使用的;如列表控件、树型控件、进度条、旋转按钮、标签控件等。三、 控件类MFC将封装了控件的功能,通过这些控件类,可以方便的创建控件、使用控件。所有控件都具有CWnd类窗口的功能。四、 控件的消息传递当有关控件的事件发生时,控件便向父窗口发送通知消息,由父窗口类的相应消息处理函数进行处理。利用Class Wizard可以方便得为控件的通知消息添加消息映射和消息处理函数。比
5、如,上次课例题中“你好”按钮(IDC_BUTTON1)的消息映射:BEGIN_MESSAGE_MAP(CEx_hello2Dlg, CDialog)/AFX_MSG_MAP(CEx_hello2Dlg)ON_BN_CLICKED(IDC_BUTTON1, OnButton1)ON_BN_CLICKED(IDC_BUTTON2, OnButton2)/AFX_MSG_MAPEND_MESSAGE_MAP()对应的消息处理函数:void CEx_hello2Dlg:OnButton1() / TODO: Add your control notification handler code here
6、m_message=大家好,这是我的第一个VC+程序。加油啊!; UpdateData(FALSE);五、 控件的使用在对话框中使用控件:添加控件、设置控件的属性、添加控件对应的变量、添加控件的消息映射和消息处理函数等。在应用程序中操作控件:常用的函数有(见P38)EnableWindow()、CloseWindow()、GetWindowText()、SetWindowText()其中,在对话框中设置控件的属性方法如下:1)打开控件的属性对话框:鼠标右键单击控件,选择 Properties;2)控件的属性一般包括:General、 Styles、 Extended StylesGeneral
7、 属性又包括控件的标识符ID、控件的标题Caption、初始化时是否可见Visible、指定成组Group、初始化时是否禁用Disabled、TabStopStyles :控件的风格Extended Styles : 控件的扩展风格后两项用于设置控件的外观、辅助功能。3)单击属性对话框之外的区域,属性设置完成。Ch3.2 静态控件一、 静态控件及其作用静态控件包含静态文本、静态图片、组框三种控件,对应的控件类均为Cstatic。其中,静态文本控件常用于显示文本字符串,静态图片控件常用于显示位图和图标,组框常用将窗口中的控件分组。二、 实例1:在对话框中显示“你好”和一张“笑脸”BMP图片,并用
8、组框划为一组,名称为“问候”。源代码见ex_dialog2static_box实现步骤:(1)创建对话框应用程序框架(2)在对话框模板中添加两个静态文本框:一个显示文字,一个显示图片(3)Insert/Resource/Bitmap/New 添加一个图片资源(标识符:IDB_BITMAP1)(4)设置控件属性:图片框的属性设置(Type 设置为bitmap,Image设置为IDB_BITMAP1)(5)添加组框,将以上两个控件包含在组框中,并设置属性(Caption设置为“问候”。(6)编译、连接、运行三、 静态控件的消息静态控件一般用于显示信息,可以接收鼠标单击消息。比如,将“你好”控件的I
9、D改为IDC_STATIC1,然后在类向导对话框中选中该表识符,可看见右边的消息为BN_CLICKED。四、 静态控件的风格(熟悉常用的)即属性设置对话框中的标签:Styles 中的选项。察看静态控件类的主要成员函数(了解)Create()、SetBitmap()、GetBitmap()等。见P39表3.2实例2:在实例1中的对话框中显示当前计算机名称、内存总量和空闲内存量。见P41分析:“刷新”函数、消息映射、对话框的运行、数据交换、变量赋初值(在构造函数)void CStatic_boxDlg:OnButton1() char buffer256;DWORD size=256;GetCom
10、puterName(buffer,&size); /获取当前计算机的名称m_name=buffer;MEMORYSTATUS status; /定义结构体变量GlobalMemoryStatus(&status); /获得当前计算机内存的信息m_total.Format(%ld KB,status.dwTotalPhys/1024); /格式化输出m_free.Format(%ld KB,status.dwAvailPhys/1024);UpdateData(false); /将变量的值传给控件ch3.3 文本编辑框(EditBox)一、 文本编辑框控件的作用矩形子窗口,常用于输入信息,也可以
11、显示信息,并且能够以单行或多行形式输入或显示。起始行号为0,每行末尾有回车换行符“rn”。二、 实例:加法计算器程序代码见ex_adder实现步骤:(1)创建对话框应用程序框架,(2)设计对话框模板:利用对话框编辑器添加并编辑如下控件:静态文本控件 IDC_STATIC,显示“加法计算器”;编辑控件IDC_EDIT1、IDC_EDIT2、IDC_EDIT3,分别用来输入两个加数和输出计算结果;两个按钮控件IDC_BUTTON1、IDC_BUTTON2,分别用于计算、清零继续计算两个默认的按钮:确认和取消(3)设置控件属性:(4)对话框类的设计:添加成员变量m_add_1、m_add_2、m_s
12、um,设定他们的取值范围为0100添加“计算”和“清零”按钮的消息映射函数。void CEx_adderDlg:OnButton1() /计算和UpdateData(TRUE);m_sum = m_add_1 + m_add_2;UpdateData(FALSE);void CEx_adderDlg:OnButton2() /清零继续m_add_1 = m_add_2 = m_sum=0;UpdateData(FALSE);(5)编译、连接、运行三、 文本编辑框控件的消息如表3.4 常用的有:EN_CHANGE EN_SETFOCUS EN_KILLFOCUS 四、 文本编辑框的风格如表3.6
13、 常用的有:ES_MULTILINE ES_PASSWORD ES_READONLY ES_CENTER举例说明五、 CEdit类的主要成员函数如表3.5 了解六、 实例2: P51实现简单的电话本 问题:结合以上两个例题回答(1)该对话框应用程序是如何运行的?(2)数据成员与控件之间的数据是如何传递的?(3)编辑控件的初值是如何设定的?(4)按钮的消息映射如何实现的?(5)数据校验如何实现的?输入一个200的数据测试。4、 课堂总结控件的学习要把握以下几点:第一点, 控件的功能及使用方法第二点, 控件的消息、风格、类的成员函数第三点, 理解消息映射机制。5、布置作业(1) 修改以上程序,实现:加、减、乘、除运算。(2)选做:小学生加法练习。功能:随机产生两个操作数,用户输入结果,用按钮判断对错。提示:随机数的产生方法,先用srand(n)设置产生随机数的种子值n;然后用 rand(); 产生伪随机数。