VC++基础控件案例图详解

上传人:日度 文档编号:145970510 上传时间:2020-09-25 格式:DOC 页数:25 大小:1,013KB
返回 下载 相关 举报
VC++基础控件案例图详解_第1页
第1页 / 共25页
VC++基础控件案例图详解_第2页
第2页 / 共25页
VC++基础控件案例图详解_第3页
第3页 / 共25页
VC++基础控件案例图详解_第4页
第4页 / 共25页
VC++基础控件案例图详解_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《VC++基础控件案例图详解》由会员分享,可在线阅读,更多相关《VC++基础控件案例图详解(25页珍藏版)》请在金锄头文库上搜索。

1、一简单MFC应用程序开发。例1. 编写如下图的程序,若单击“复制”按钮,则把上面的编辑框中的内容复制到下面的编辑框中;若单击“结束”按钮,则退出程序的运行。(1)工程创建选择“文件|新建”命令;在“工程”选项卡中,选定“MFC App Wizard(exe),输入工程名称TEST,单击“确定”按钮;选定“D基本对话框”即创建基于对话框的应用程序,单击“完成”按钮。(2)放置控件,先删除原有的控件,然后放置本例需要的控件,本例共涉及4个控件:2个编辑框和2个命令按钮。编辑框主要用来输入数据,也可以用来显示数据;命令按钮用来执行有关操作。(3)设置控件的属性,控件添加后就要设置其有关的属性。上编辑

2、框的属性设置:选定“Multiline”复选框,编辑框中可以输入多行文本;选定“Vertical scroll和Auto VScroll,编辑框将有垂直滚动条;选定“Want Return”。下编辑框的属性设置同上编辑框,但可不选定“Want Return”。(4)连接变量,为控件连接变量就是为控件起一个名字。每一个控件都是一个对象,调用MFC类库中的函数都是通过对象来实现的。编辑框属于CEdit类,一个具体的编辑框就是一个CEdit类的对象,如上IDC_EDIT1和IDC_EDIT2。这些对象必须有名称才能对它们进行操作,所以要给每一个对象连接一个变量,作为对象的名称。这个变量将成为类中的一

3、个数据成员。现在为IDC_EDIT1连接一个变量m_e1。在IDC_EDIT1编辑框中右击鼠标出现快捷菜单选择“建立类向导”,如下图所示。 在上图中选择“创建类向导”后,弹出如下图所示的MFC ClassWizard对话框,在“Member Variables”中,选定“IDC_EDIT1”,再选择“Add Variable”按钮。出现下图所示的Add Member Variable对话框中输入以下的数据:Member Variable name(成员变量名):m_e1;Category(类别):Control;Variable type(类型):CEdit。用同样的方法为IDC_EDIT2连

4、接一个变量m_e2,结果如下图所示。(5)添加并且编写消息处理函数,在建立了对话框(用户操作界面)、设置控件属性和连接变量后,就要考虑为哪些控件编写什么样的消息处理函数了。本例要求单击“复制”按钮后,编辑框中的内容复制到下面的编辑框中。也就是说,在程序运行时,在“复制”按钮上发生单击事件后,Windows向对话框发出了一个BN_CLICKED消息,CTESTDlg类应有一个处理该消息的函数。添加和编写这个消息处理函数的过程是:双击“复选”按钮,弹出如下图所示的“Add Member Function”对话框,输入函数名(缺省函数名为OnButton1),单击“确定”按钮后,添加了一个空函数。另

5、一个方法是在“MFC ClassWizard”对话框“Message Maps”选项卡中,选定IDC_BUTTON1和BN_CLICKED消息,如图所示,然后单击“Add Function”按钮即可。再单击Edit Code按钮,出现如下消息处理函数。为消息处理函数void CTESTDlg:OnButton1()和void CTESTDlg:OnButton2()分别添加代码如下图所示。二.静态文本框、命令按钮和编辑框的使用静态文本框,是最简单的控件,它主要用来显示文本信息,不能接受用户输入,一般不需要连接变量,也不需要处理消息。命令按钮,是最常见的、应用最广泛的一种控件。在程序执行期间,若

6、单击某个命令按钮,则执行相应的消息处理函数。命令按钮的主要属性是标题属性,该属性用来设置命令按钮上显示的文本。命令按钮一般不需要连接变量。命令按钮能处理BN_CLICKED消息。编辑框,是一个文本编辑区域,用户可以在该区域输入、编辑和显示正文内容。由于编辑框内置了一定的编辑功能,如剪切、复制、粘贴、撤销等功能,一般不需要对它进行编程。(1)属性设置,编辑框的重要属性(样式style选项卡中)设置:Multiline,定义该编辑框为多行文本框;Number,限定输入的字符只能是数字字符;Boder为控件创建边界;Read-only,编辑框成为只读的,禁止用户编辑修改。(2)成员函数,编辑框常用的

7、成员函数如下表所示。成员函数功能应用示例SetSel(n,m)选定编辑框中从第n个字符到第m个字符的内容。SetSel(0,-1)的作用是选定所有的内容m_e.SetSel(0,-1);Copy()将编辑框中当前选定的内容复制到剪切板m_e.Copy();Cut()将编辑框中当前选定的内容剪切到剪切板m_e.Cut();Clear()删除编辑框中当前选定的内容m_e.Clear();Paste()把剪贴板中内容粘贴到编辑框中光标所在位置m_e.Paste();GetLine(n,ch)将多行编辑框中第n行的内容复制到ch中,ch一般为字符数组char ch80;m_e.GetLine(0,ch

8、);ReplaceSel(ch)将ch中内容替换编辑框中选定的内容char ch80=”abcd”;m_e.ReplaceSel(ch);Undo()撤销对编辑框的最后一次操作m_e.Undo();由于CEdit是从CWnd类直接派生来的,所以编辑框可以使用CWnd类的成员函数。CWnd类的重要成员函数有:获取编辑框中内容:GetWindowText(CString &rString) const;将编辑框中内容复制到CString类对象rString中。例如,将编辑框m_e中内容复制到CString类对象ch中:CString ch;m_e.GetWindowText(ch);例如,将编辑框

9、m_e中内容复制到字符数组ch中:char ch80;m_e.GetWindowText(ch,80);设置编辑框中内容:void SetWindowText(LPCTSTR lpszString);将lpszString中内容替换编辑框中原有内容,lpszString是字符数组或字符串指针。例如:设置编辑框中的内容为“abcdefg”:char ch20=”abcdefg”;m_e.SetWindowText(ch);(3)连接变量编辑框在连接变量时,除了要指定变量名之外,还要确定变量类别。变量类别有两个可选择:Control是指该变量作控件使用,对应的变量类型只能是Cedit,可以使用该控

10、件类的成员函数;Value,是指该变量作C/C+中普通的变量使用,对应的变量类型有CString、int、double等。如下图所示。注意:如果一个编辑框连接了一个Value类别的变量,则该变量就表示这个编辑框,编辑框中显示的内容就是变量的值。但是,改变了编辑框的内容并不会自动更新对应的变量的值,同样改变了变量的值也不会自动刷新编辑框的内容。若要保持一致,需要使用UpdateData()函数更新:若编辑框的内容改变了,则应使用语句UpdateData(TRUE);更新对应的变量的值;若变量的值改变了,则应使用语句UpdateData(FALSE);刷新编辑框的内容。例2,输入一元二次方程ax2

11、+bx+c=0的系数a、b、c,计算并输出两个根x1、x2,如下图所示。说明:建立工程名为FC,对话框上有5个静态文本框、5个编辑框和2个命令按钮。为5个编辑框连接的变量如下图,类型都是value,数据类型都是double。为了计算b2-4ac的平方根,需要使用sqrt()函数,因此在FCDlg.cpp文件的开头添加文件包含命了:#include “math.h”。“计算”和“结束”按钮的消息函数如下图所示。例3,编写一个对输入的字符串进行转换的程序。转换规则为:将大写字母转换成小写;将小写转换成大写;换行符和回车符不变;其余字符转换为“*”。要求每输入一个字符立即进行判断和转换。程序运行界面

12、如下图所示,其上仅放有2个编辑框,它们的属性如下表所示,连接的变量分别是m_e1和m_e2,都是Control类别。控件属性属性值m_e1ID 缺省Multiline选定Vertical Scroll选定Auto VScroll选定Want Return选定m_e2ID缺省Multiline选定Vertical Scroll选定Auto VScroll选定Read only选定为了在每输入一个字符后立即进行判断和转换,编写了“EN_CHANGE”的消息函数,如下图所示。三框架、单选按钮和复选框框架、单选按钮和复选框都是对话框的常见控件,框架与静态文本框一样是CString类的对象,单选按钮和复

13、选框与命令按钮都是CButton类的对象。1.框架当对话框上控件较多时,可以使用框架将一组相关的控件框起来,达到标识一组控件的作用。框架不需要连接变量,也不需要处理消息。框架的重要属性有:ID,所有框架的缺省ID都是IDC_STATIC,不需要重新设置;标题,该属性决定框架上的标题文本。2.单选按钮,单选按钮必须成组出现,用户在一组单选按钮中最多只能选择一项。当某一项被选定后,其他选项自动变成未选状态。窗体中放置一组单选按钮的方法:同一组按钮必须一个接一个地放进对话框中,中间不能插入其他控件,并且一个组的第一个按钮要选中“Group”属性,表示一组控件的开始。打开MFC ClassWizard

14、的Member Variables选项卡,可以发现一组中只有第一个按钮的ID被显示,这意味着只能对第一个按钮连接变量。单选按钮的重要属性:ID,每个单选按钮都有一个缺省ID,如IDC_RADIO1,可以重新设置;标题,该属性值就是单选按钮右边显示的文本标题;Group,一组中第一按钮选中该属性,表示它是一组的开始。单选按钮的消息函数:BN_CLICKED。单选按钮的重要成员函数:(1)设定单选按钮选中状态,初始时,可使用Window API函数CheckRadioButton()设定一组单选按钮中选中的按钮。形式:void CheckRadioButton(int nIDFirstButton

15、,int nIDLastButton, int nIDCheckButton);说明:nIDFirstButton是一组中第一个单选按钮的ID;nIDLastButton,是一组中最后一个单选按钮的ID;nIDCheckButton为初始时设置为选中的那个单选按钮的ID。(2)判定单选按钮是否被选定形式:UNIT IsDlgButtonChecked(int nIDButton) const;说明:如果ID为nIDButton的单选按钮被选中,则该函数的返回值为true,否则为false。例4,设计一个如下右图所示的程序。当单击“确定”按钮后,用AfxMessageBox函数显示有关信息,如左图所示。 界面设计:首先创建一个对话框程序(工程名称为DXAN),然后放置控件,进行属性设置,将编辑框连接到Value类CString类型的m_e变量,其余控件不需要连接变量。对其中IDC_RADIO1、IDC_RADIO2(它们用第一个框架框上,第一个框架的标题属性修改为“性别”,如下图Group Bo

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

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