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

合集下载

第6章 控件

第6章  控件
第6章 控件
控件是VC6.0提供给开发者的很好的开发工具中的 零件,开发者可以很方便地使用这些零件来组装 一个软件。本章的知识比较简单,而且前文也多 次使用到了本章的控件知识内容,但只是在计算 器软件中涉及到了编辑框、按钮和静态文本控件 这3种,本章将进一步讲解标准通用控件和高级通 用控件。 本章涉及的知识点有: 标准通用控件:读者可以学到所有标准通用控件 的创建和使用。 高级通用控件:读者可以学到所有高级通用控件 的创建和使用。
6.1 VC6.0资源和通用控件
控件是在图形用户界面(GUI)中屏幕上的一种对象,用户可操作 该对象来执行某一行为。 控件是用户可与之交互以输入或操作数 据的对象。控件通常出现在对话框中或工具栏上。 对话框实际上就是一个窗口,与CView类创建的窗口不同的是,对 话框窗口的所有组成元素都跟资源联系在一起,这些资源就是控 件。 VC6.0的资源和源代码可以通过该资源的ClassWizard来进行关联, 这也大大方便了开发者开发效率。同时,通过设置VC6.0内置的控 件的属性,也可以细化控件组件的功能,如设置滑动条的最大最 小值、滑动距离和编辑框最大文本长度等。 本章介绍的通用控件课余可以分为以下两类: 标准通用控件 高级通用控件
划块控件
6.4.3 列表控件
【本小节代码示例参考6.3节】 如果希望程序中包含图像或者文字的列表,则应 该使用列表控件,如图所示。
列表控件
6.4.4 树状控件
树状控件和列表控件有点类似,但却不同,列表 控件是线性的,而树状控件是树型结构的,并且 可以展开或关闭子节点。树状结构适用于文件夹 管理、行政管理架构等软件的开发。树状控件如 图所示。
树状控件
6.5 实例6.2-标准通用控件的使用
本节通过实例来讲解标准通用控件的使用,为简单起见, 本节的实例将在同一个对话框中逐步使用各个标准通用控 件。实例项目创建步骤如下: (1)单击“File”菜单,选中“New”命令,创建新项目。 (2)创建MFC应用程序项目,并命名为“stdControl”。 (3)选择“基于对话框”的MFC应用程序类型。 (4)为对话框添加进度条功能。

vc6s-chap06-对话框与控件

vc6s-chap06-对话框与控件
(5)在析构函数中删除pdlg: delete pdlg; (6)在消息函数所在文件开头添加 #include “CModelessDlg.h”
例6-2:Ex06_2对话框模式与无模式调用 表6-5 例6-2具体说明
项目
图与说明
程序 界面
程序 功能
点击菜单:对话框调用->模式对话框…,弹出 模式对话框。
UINT nType=MB_OK,UINT nIDHelp=0);
该函数至少带一个参数lpszText,即在消息对话框 中显示的文本。
第二个参数nType可选,为图标风格和按钮的排列 方式。
第三个参数也可选,为所显示信息的帮助内容的ID
表6-1 消息框中所用的图标
图标
含义
IDC_STATIC 警告
点击菜单:话框调用->非模式对话框…,弹出 非模式对话框。
(1) 新建一单文档应用程序Ex06_2 (2) 添加模式对话框和非模式对话框资源 ① 插入对话框
在Workspace窗口的ResourceView的资源列表中,右 击“Dialog”项,在快捷菜单中选择“Insert Dialog”选项, 此时在资源列表中新建名为“IDD_DIALOG1”的对话框 资源,对话框资源编辑器随之启动,将新对话框 “IDD_DIALOG1” 调入其中。
6.1 对话框基本知识
6.1.1 对话框的组成
(1)一个指定了对话框中各控件及其相对位置的对 话框模板资源。
(2)一个对话框类,通常都是从 CDialog类派生。
6.1.2 对话框的类型
(1)按调用分类
模式对话框:在未关闭该对话框前,不能选择应 用程序的其它功能。
无模式对话框:在关闭该对话框前,用户可以选 择应用程序的其它功能。

VC++ 课件 第05章 对话框和常用控件

VC++ 课件 第05章 对话框和常用控件

5.2控件的创建和使用方法
5.2.1控件的创建方法 控件的创建方式有以下两种: 一种是在对话框模板中用编辑器指定控件,也就是说,将控件的父窗口指 定为对话框,这样做的好处是明显的,因为当应用程序启动该对话框时, Windows系统就会为对话框创建控件;而当对话框消失时,控件也随之清 除。 另一种方式是将控件看作是任一窗口的子窗口,并通过调用相应的Create 函数来创建。 [例Ex_SDIHello] 在上例Ex_SDIHello的基础上用子窗口方式创建控件。 (1)打开CMyDlg的头文件MyDlg.h,添加一个按钮类CButton指针变量: class CMyDlg : public CDialog { // Construction public: CMyDlg(CWnd* pParent = NULL); // standard constructor CButton *m_btnWnd; … }
5.1对话框的使用
在程序中使用对话框 (1)利用项目工作区的ClassView标签项,将Ex_SDIHello.cpp源文件打开; (2)在Ex_SDIHello.cpp源文件的前面加上包含类CMyDlg的头文件: #include "MyDlg.h" (3)在InitInstance函数体中的“return TRUE;”语句之前添加下列代码: CMyDlg dlg; dlg.DoModal(); DoModal是模态对话框最常用的函数,它负责对话框的显示和终止。 (4)编译并运行。在程序的一开始就出现用户自己设计的对话框,单击 [Button1]按钮将弹出“欢迎进入对话框的设计!”的消息对话框来。
5.1对话框的使用
5.1.2使用对话框编辑器
打开对话框编辑器
将项目工作区窗口切换到ResourceView页面,双击Dialog目录下任意一个对 话框ID。或者,选择“Insert”“Resource”菜单命令(或按快捷键Ctrl+R), 选择Dialog项,单击New。

VisualC程序设计项目案例教程课件课件7

VisualC程序设计项目案例教程课件课件7

图7-9 通讯录的设计界面 。
图7-10 “添加通讯录”的设计界面
企业人事管理系统的管理员登录界面如图7-2所示。
1.设计界面
图7-2 “管理员登录”界面
企业人事管理系统的登录界面的设计步骤为:首先拖入三个“Label控件”,分别用于显示“企业人事
管理系统”、“用户名”和“密码”。然后拖入两个“TextBox控件”,分别用于“用户名”和“密码”
的输入,最后拖入两个“Button控件”,分别用于“登录”和“取消”按钮。设置“密码TextBox控件”
人事资料查询功能的设计界面如图7-6所示 。人事资料查询功能包括按照“基本信息查询 ”和“个人信息查询”。“基本信息查询”包 括按照“民族类别”、“文化程度”、“政治 面貌”、“职工类别”、“职务类别”、“工 资类别”、“部门类别”和“职称类别”进行 查询。个人信息查询包括按照“性别”、“婚 姻”、“年龄”、“工龄”、“机关”、“工 资”、“合同年限”、“工作时间”、“毕业 学校”、“主修专业”等进行查询。其中查询 条件之间可以选择“与运算”或者“或运算” 。查询结果显示在界面下边的“dataGridView 控件”中。
代码分层的优点:
系统比较容易迁移。商业逻辑层与数据访问层是分离的,修改数据访问层不会影响到商业逻辑 层。系统如果从用SQL Server存储数据迁移到用Oracle存储数据,并不需要修改商业逻辑层组件和 GUI组件。
系统容易修改,假如在商业层有一个小小的修改,我们不需要在用户的机器上重装整个系统。 我们只需要更新商业逻辑组件就可以了。
本系统的功能模块有以下几个:基础信息管理(包括基础数据管理和员工提示信息管理) 、人事管理(包括人事档案浏览、人事资料查询和人事资料统计)、备忘记录管理(包括日常 记事管理和通讯录管理)、系统管理(包括用户设置管理)、数据库管理(包括备份还原数据 库和清空数据库)。企业人事管理系统的功能结构如图7-1所示。

VC6.0中画图用的chart控件

VC6.0中画图用的chart控件

//设置背景颜色 m_Chart.GetBackdrop().GetFill().SetStyle(1); m_Chart.GetBackdrop().GetFill().GetBrush().GetFillColor().Set(255, 255, 255);
//设置数据系列的颜色:如果是曲线图则对应每条曲线的颜色 for (int i = 1; i <= m_Chart.GetColumnCount(); i++ ) {//这里设置为随机颜色 m_Chart.GetPlot().GetSeriesCollection().GetItem(i).GetPen().GetVtColor().Set(rand() * 230 / RAND_MAX, rand() * 230 / RAND_MAX, rand() * 230 / RAND_MAX); m_Chart.GetPlot().GetSeriesCollection().GetItem(i).GetDataPoints().GetItem(-1).GetDataPointLabel().SetLocationType(1); } //设置 x 轴的其他属性 m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetAuto(FALSE); // 不自动标注 X 轴刻度 m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerLabel(1);// 每刻度一个标注 m_Chart.GetPlot().GetAxis(0,var).GetCategoryScale().SetDivisionsPerTick(1); // 每刻度一个刻度线

VC6.0简单绘图说明

VC6.0简单绘图说明

第二章VC6.0简单绘图说明许多学编程的都是从C 语言开始入门的,而目前的现状是:有些学校以Turbo C 为环境讲C 语言,只是Turbo C 的环境实在太老了,复制粘贴都很不方便。

有些学校直接拿VC 来讲C 语言,因为VC 的编辑和调试环境都很优秀,并且VC 有适合教学的免费版本。

可惜在VC 下只能做一些文字性的练习题,想画条直线画个圆都很难,还要注册窗口类、建消息循环等等,初学者会受严重打击的。

初学编程想要绘图就得用TC,很是无奈。

还有计算机图形学,这门课程的重点是绘图算法,而不是Windows 编程。

所以,许多老师不得不用TC 教学,因为Windows 绘图太复杂了,会偏离教学的重点。

新的图形学的书有不少是用的OpenGL,可是门槛依然很高。

要给初学者一个简单的学习平台,就要VC的开发平台和TC的简单的绘图功能,于是就有了这个EasyX 库,我们需要在VC下下载安装EasyX库,下载地址:http:///。

下面是VC下简单绘图函数的基本说明。

1.系统支持操作系统版本:Windows 2000 及以上系统。

编译环境版本:Visual C++ 6.0 / 2008(x86 & x64) / 2010(x86 & x64)。

2.安装请先将下载的压缩包解压缩,然后执行Setup.hta,并跟随提示安装。

安装程序会检测已经安装的VC 版本,并根据选择将对应的.h 和.lib 文件安装至VC 的include 和lib 文件夹内。

安装程序不会修改注册表或者本机的任何文件。

如果需要手动安装,请根据下面的文件列表说明将安装包里的相关文件分别复制到VC 对应的include 和lib 文件夹内,或者将include 和lib 文件夹放到任意位置,然后修改VC 中的Lib 和Include 的引用路径。

3.卸载由于安装程序并不改写注册表,因此在“添加删除程序”中不会看到EasyX 的卸载项。

VC++简单应用指南三——控件的使用

VC++简单应用指南三——控件的使用

VC++简单应用指南三——控件的使用一.静态文本控件1.设置静态文本控件显示文字2.通过函数修改静态文本显示内容/2.1修改ID2.2给文本框添加变量 2.3变量调用函数2.4程序m_m.SetWindowText("函数修改文本显示内容");3.设置文本颜色/3.1添加窗口消息句柄 3.2添加程序3.3程序if(nCtlColor==CTLCOLOR_STATIC)pDC->SetTextColor(RGB(255,0,0));4.给静态文本添加单击事件/4.1修改ID 4.2选择Notify属性(属性-样板-通知)4.3创建单击事件函数 4.4程序void CWenbenDlg::OnStatic1(){// TODO: Add your control notification handlercode hereMessageBox("成功");}二、编辑框控件1.1密码输入编辑框 1.2使编辑框内容只读(用户不可修改)1.3让编辑框内容多行显示 1.4在编辑框中Enter键换行1.5效果显示2.获取编辑框内容/2.1给编辑框添加变量2.2添加按钮控件并为其添加函数 2.3程序CString str;m_v.GetWindowText(str);MessageBox(str);2.4显示效果三、图像控件1.1创建图像控件 1.2为图像控件添加图像/1.2.1在资源视图中导入图像1.2.2显示图像 1.2.3排列控件上下显示顺序1.2.4显示效果 2.设置边框颜色和填充颜色只有类型是框架或者矩形时,可调控颜色;类型为位图时,是无法调控的3.居中显示位图四、按钮控件1.按钮控件显示图标/1.1先设置图标属性 1.2添加图标/1.3程序m_b.SetIcon(AfxGetApp()->LoadIcon(IDR_MAINFRAME));1.4显示效果2.为按钮控件添加单击事件/2.1双击添加函数2.2通过类向导添加函数五、复选框控件1.设置复选框选中状态/1.1创建对话框 1.2创建2个群组框控件和6个复选框控件1.3给复选框设置变量 1.4.1在OnInitDialog函数中设置复选框1.4.1程序 1.4.2属性中设置复选框不可修改m_Chinese.EnableWindow(FALSE);//复选框不可修改m_Chinese.SetCheck(1);//复选框选中状态m_Arith.EnableWindow(FALSE);m_Arith.SetCheck(1);2.用复选框统计信息/2.1在案例一的基础上加控件 2.2给提交按键添加单击事件2.2程序 2.3测试CString ID,Name,str,text;GetDlgItem(IDC_EDIT1)->GetWindowText(Name);GetDlgItem(IDC_EDIT2)->GetWindowText(ID);str="姓名:"+Name+"编号:"+ID+"\r\n";str+="必修课:语文、数学\r\n选修课:";for(int i=0;i<4;i++){CButton*but=(CButton*)GetDlgItem(IDC_CHECK3+i);if(but->GetCheck()==1){but->GetWindowText(text);str+=text+"、";}}str=str.Left(str.GetLength()-2);MessageBox(str);六、单选按钮控件1.单选按钮分组/1.1创建对话框 1.2创建单选按钮控件1.3属性对单选进行分组 1.4效果语文单选按钮以后为一组;英语单选按钮以后为一组;遵循Tab键顺序2.使用Tab键重建分组/2.1打乱上例的单选按钮顺序 2.2使用Tab顺序重新排列顺序3.获得单选按钮控件文本/3.1创建按钮控件 3.2创建变量3.3为四个单选按钮创建单选事件 3.3程序void CDfsqerDlg::OnRadio1(){ m_Radio=1;}void CDfsqerDlg::OnRadio2(){ m_Radio=2;}void CDfsqerDlg::OnRadio3(){ m_Radio=3;}void CDfsqerDlg::OnRadio4(){ m_Radio=4;}3.4提交按键的单击事件创建 3.4程序CString str;CButton *Radiobutton=(CButton*)GetDlgItem(IDC_RADIO1+m_Radio-1);Radiobutton->GetWindowText(str);MessageBox(str);1.创建组合框/1.1创建对话窗口 1.2添加组合框控件1.3在属性中添加下拉内容 1.3显示效果如果下拉无法显示,就增大组合框控件的大小1.4调整数据显示顺序 1.5类型为简单显示2.获取选择的数据/2.1以上例,为组合框添加变量 2.2为组合框添加选择改变事件2.3为组合框添加选择改变事件添加函数 2.3程序int pos=m_Combo.GetCurSel();//获得当前选择的列表项索引CString str;m_Combo.GetLBText(pos,str);//根据索引获得数据MessageBox(str);1.在列表框中指定位置插入内容/1.1创建对话框 1.2添加2个静态文本,2个编辑框,1个列表框和按键1.3对编辑框和列表框添加变量 1.4在对话框初始化时向列表框插入数据程序:m_List.AddString("语文");m_List.AddString("数学");m_List.AddString("英语");m_List.AddString("物理");1.5给插入按键添加单击事件 1.5程序UpdateData(TRUE);m_List.InsertString(m_Num,m_Text);2.实现避免插入重复数据/2.1修改上例,删除编辑框等 2.2修改编辑框变量的属性2.3处理插入按钮的点击事件CString str;m_Text.GetWindowText(str);int num=m_List.GetCount();//获得列表框的行数for(int i=0;i<num;i++){CString Text;m_List.GetText(i,Text);if(Text == str){MessageBox("数据已存在!");return;}} m_List.AddString(str);3.在列表框中实现复选功能/3.1修改2例; 3.2对列表框设置变量;是控件型3.3双击类文件,打开头文件,修改CListBox为CCheckListBox 3.4确定按键添加函数3.5程序 3.6修改列表框属性CString strText="";int num=m_List.GetCount();//获得列表框的行数for(int i=0;i<num;i++){if(m_List.GetCheck(i)){CString str;m_List.GetText(i,str);strText += str;}}MessageBox(strText);九.进度条控件1.1创建一个对话框 1.2添加一个进度条控件1.3对进度条控件添加变量 1.4在初始化方法中添加进度条范围m_p.SetRange(1,100);//设置进度条范围SetTimer(1,100,NULL);//100是一秒,一秒发生一次事件1.5建立计时器事件 1.6在计时器函数中添加程序static int i;//定义局部变量m_p.SetPos(i++);//定义进度条位置1.6效果:1.7设置显示风格。

VC15_9基本界面元素(1)

VC15_9基本界面元素(1)
在.NET 1.x中,菜单类是基于Win32的,由Menu类及其子类MainMenu、 ContextMenu和MenuItem类所支持。然而,在.NET 2.0及其以后版本中,菜单已 被改进。改进后的菜单由MenuStrip类封装,封装的组件称为MenuStrip控件,它 是取代MainMenu的顶级容器。在功能上,它与从ToolStripItem派生的
添加到窗体中。例如【例Ex_Menu】中添加的menuStrip2菜单代码。
private: System::Windows::Forms::MenuStrip^ menuStrip2; private: System::Windows::Forms::ToolStripMenuItem^ returnMenu; ... this->menuStrip2 = (gcnew System::Windows::Forms::MenuStrip()); this->returnMenu = (gcnew System::Windows::Forms::ToolStripMenuItem()); ... // menuStrip2 this->menuStrip2->Items->AddRange( gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(1) {this->returnMenu}); this->menuStrip2->Location = System::Drawing::Point(0, 0); this->menuStrip2->Name = L"menuStrip2"; this->menuStrip2->Size = System::Drawing::Size(292, 24); this->menuStrip2->TabIndex = 1; this->menuStrip2->Text = L"menuStrip2"; // returnMenu this->returnMenu->Name = L"returnMenu"; this->returnMenu->ShortcutKeys = System::Windows::Forms::Keys::F5; this->returnMenu->Size = System::Drawing::Size(58, 20); this->returnMenu->Text = L"返回(&R)"; this->returnMenu->Click += gcnew System::EventHandler(this, &Form1::On_Return); ... this->Controls->Add(this->menuStrip2);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

老肖VC讲座 一.简单MFC应用程序开发。 例1. 编写如下图的程序,若单击“复制”按钮,则把上面的编辑框中的内容复制到下面的编辑框中;若单击“结束”按钮,则退出程序的运行。

(1)工程创建 ①选择“文件|新建”命令; ②在“工程”选项卡中,选定“MFC App Wizard(exe),输入工程名称TEST,单击“确定”按钮;

③选定“D基本对话框”即创建基于对话框的应用程序,单击“完成”按钮。 老肖VC讲座 (2)放置控件,先删除原有的控件,然后放置本例需要的控件,本例共涉及4个控件:2

个编辑框和2个命令按钮。编辑框主要用来输入数据,也可以用来显示数据;命令按钮用来执行有关操作。 老肖VC讲座 (3)设置控件的属性,控件添加后就要设置其有关的属性。

上编辑框的属性设置:选定“Multiline”复选框,编辑框中可以输入多行文本;选定“Vertical scroll和Auto VScroll,编辑框将有垂直滚动条;选定“Want Return”。 老肖VC讲座 下编辑框的属性设置同上编辑框,但可不选定“Want Return”。 (4)连接变量,为控件连接变量就是为控件起一个名字。每一个控件都是一个对象,调

用MFC类库中的函数都是通过对象来实现的。编辑框属于CEdit类,一个具体的编辑框就是一个CEdit类的对象,如上IDC_EDIT1和IDC_EDIT2。这些对象必须有名称才能对它们进行操作,所以要给每一个对象连接一个变量,作为对象的名称。这个变量将成为类中的一个数据成员。 现在为IDC_EDIT1连接一个变量m_e1。 ①在IDC_EDIT1编辑框中右击鼠标出现快捷菜单选择“建立类向导”,如下图所示。

②在上图中选择“创建类向导”后,弹出如下图所示的MFC ClassWizard对话框,在“Member Variables”中,选定“IDC_EDIT1”,再选择“Add Variable”按钮。 老肖VC讲座 ③出现下图所示的Add Member Variable对话框中输入以下的数据: Member Variable name(成员变量名):m_e1; Category(类别):Control; Variable type(类型):CEdit。

用同样的方法为IDC_EDIT2连接一个变量m_e2,结果如下图所示。 老肖VC讲座 (5)添加并且编写消息处理函数,在建立了对话框(用户操作界面)、设置控件属性

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

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

命令按钮,是最常见的、应用最广泛的一种控件。在程序执行期间,若单击某个命令按钮,则执行相应的消息处理函数。命令按钮的主要属性是标题属性,该属性用来设置命令按钮上显示的文本。命令按钮一般不需要连接变量。命令按钮能处理BN_CLICKED消息。

编辑框,是一个文本编辑区域,用户可以在该区域输入、编辑和显示正文内容。由于编辑框内置了一定的编辑功能,如剪切、复制、粘贴、撤销等功能,一般不需要对它进行编程。 (1)属性设置,编辑框的重要属性(样式style选项卡中)设置: Multiline,定义该编辑框为多行文本框;Number,限定输入的字符只能是数字字符;Boder为控件创建边界;Read-only,编辑框成为只读的,禁止用户编辑修改。

(2)成员函数,编辑框常用的成员函数如下表所示。 成员函数 功能 应用示例 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 ch[80]; m_e.GetLine(0,ch); 老肖VC讲座 ReplaceSel(ch) 将ch中内容替换编辑框中选定的内容 char ch[80]=”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); 例如,将编辑框m_e中内容复制到字符数组ch中: char ch[80]; m_e.GetWindowText(ch,80); ②设置编辑框中内容:void SetWindowText(LPCTSTR lpszString);将lpszString中内容替换编辑框中原有内容,lpszString是字符数组或字符串指针。 例如:设置编辑框中的内容为“abcdefg”: char ch[20]=”abcdefg”; m_e.SetWindowText(ch); (3)连接变量 编辑框在连接变量时,除了要指定变量名之外,还要确定变量类别。变量类别有两个可选择:Control是指该变量作控件使用,对应的变量类型只能是Cedit,可以使用该控件类的成员函数;Value,是指该变量作C/C++中普通的变量使用,对应的变量类型有CString、int、double等。如下图所示。

注意:如果一个编辑框连接了一个Value类别的变量,则该变量就表示这个编辑框,编辑框中显示的内容就是变量的值。但是,改变了编辑框的内容并不会自动更新对应的变量的值,同样改变了变量的值也不会自动刷新编辑框的内容。若要保持一致,需要使用UpdateData()函数更新:若编辑框的内容改变了,则应使用语句UpdateData(TRUE);更新对应的变量的值;若变量的值改变了,则应使用语句UpdateData(FALSE);刷新编辑框的内容。 老肖VC讲座 例2,输入一元二次方程ax2+bx+c=0的系数a、b、c,计算并输出两个根x1、x2,如下图所示。

说明:建立工程名为FC,对话框上有5个静态文本框、5个编辑框和2个命令按钮。为5个编辑框连接的变量如下图,类型都是value,数据类型都是double。

为了计算b2-4ac的平方根,需要使用sqrt()函数,因此在FCDlg.cpp文件的开头添加文件包含命了:#include “math.h”。 “计算”和“结束”按钮的消息函数如下图所示。 老肖VC讲座 例3,编写一个对输入的字符串进行转换的程序。转换规则为:将大写字母转换成小写;将小写转换成大写;换行符和回车符不变;其余字符转换为“*”。要求每输入一个字符立即进行判断和转换。

程序运行界面如下图所示,其上仅放有2个编辑框,它们的属性如下表所示,连接的变量分别是m_e1和m_e2,都是Control类别。 控件 属性 属性值 m_e1 ID 缺省 老肖VC讲座 Multiline 选定

Vertical Scroll 选定

Auto VScroll 选定

Want Return 选定

m_e2 ID 缺省

Multiline 选定

Vertical Scroll 选定

Auto VScroll 选定

Read only 选定

为了在每输入一个字符后立即进行判断和转换,编写了“EN_CHANGE”的消息函数,如下图所示。 老肖VC讲座 三.框架、单选按钮和复选框 框架、单选按钮和复选框都是对话框的常见控件,框架与静态文本框一样是CString类的对象,单选按钮和复选框与命令按钮都是CButton类的对象。 1.框架 当对话框上控件较多时,可以使用框架将一组相关的控件框起来,达到标识一组控件的作用。框架不需要连接变量,也不需要处理消息。框架的重要属性有:ID,所有框架的缺省ID都是IDC_STATIC,不需要重新设置;标题,该属性决定框架上的标题文本。

2.单选按钮,单选按钮必须成组出现,用户在一组单选按钮中最多只能选择一项。当

某一项被选定后,其他选项自动变成未选状态。 窗体中放置一组单选按钮的方法:同一组按钮必须一个接一个地放进对话框中,中间不能插入其他控件,并且一个组的第一个按钮要选中“Group”属性,表示一组控件的开始。打开MFC ClassWizard的Member Variables选项卡,可以发现一组中只有第一个按钮的ID被显示,这意味着只能对第一个按钮连接变量。 单选按钮的重要属性:ID,每个单选按钮都有一个缺省ID,如IDC_RADIO1,可以重新设置;标题,该属性值就是单选按钮右边显示的文本标题;Group,一组中第一按钮选中该属性,表示它是一组的开始。 单选按钮的消息函数:BN_CLICKED。 单选按钮的重要成员函数: (1)设定单选按钮选中状态,初始时,可使用Window API函数CheckRadioButton()设定一组单选按钮中选中的按钮。 形式:void CheckRadioButton(int nIDFirstButton,int nIDLastButton, int nIDCheckButton); 说明:nIDFirstButton是一组中第一个单选按钮的ID;nIDLastButton,是一组中最后一个单选按钮的ID;nIDCheckButton为初始时设置为选中的那个单选按钮的ID。 (2)判定单选按钮是否被选定 形式:UNIT IsDlgButtonChecked(int nIDButton) const; 说明:如果ID为nIDButton的单选按钮被选中,则该函数的返回值为true,否则为false。

相关文档
最新文档