(在Windows程序设计中,资源也是对象)。如果要在设计阶段把外部的图象插入到图片控件,则先要把外部的图象文件导入工程,才能成为可用资源。
Color(颜色):设置Frame的边框颜色或Rectangle的填充色。可选的颜色有break(黑)、while(白)、gray(灰)或者etched(有3D外观的腐蚀色)。 【Case2】图片框应用
??启动MFC AppWizard,创建一个对话框工程,工程名为case2。
?在控件箱中选择Picture控件,将其拖至对话框中,拖动该控件的边框,调整它的大小。
?将“确定”按钮的ID值改为“IDC_CHANGE”,将标题值改为“切换图片”。 ?选择“插入”菜单中的“资源”命令,弹出“插入资源”对话框,选择Bitmap(位图)资源,单击“新建”按钮。
?在左窗格的资源视图中,右击“Bitmap”并选择“Import”(导入)命令,弹出“导入资源”对话框。
?选择文件类型为“所有文件”,然后选择一个扩展名为.bmp、.jpg或 .jpeg的图形文件, 3.2 编辑框控件
编辑框(Edit Box)也称文本框,MFC的Cedit类封装了编辑框控件。 编辑框实际上是一个简易的文本编辑器,用户可以在编辑框中输入并编辑文本。 编辑框控件的主要属性 Align text
文本对齐方式,其值可以是Left、Right、Center(居中)。 Multiline
多行文本,默认是FALSE(单行)。 Number
只接受数字符号。 Horizontal scroll
添加水平滚动条,只对多行文本有效。 Vertical scroll
添加垂直滚动条,只对多行文本有效。 Password
屏蔽用户输入的信息,用特定字符统一显示,默认字符是“*”。 【Case2】密码输入
Step1:建立工程架构
使用MFC AppWizard建立一个对话框工程,工程名为:casePW Step2:设计窗口界面
使用对话框编辑器设计工程的窗口界面,如图所示。各控件的属性设置如下: 控件名 ID 标题 其他属性 编辑框 IDC_EDIT1 密码 静态文本 IDC_STATIC1 输入密码: 居中
静态文本 IDC_STATIC2 居中,Client edge 命令按钮 IDC_BUTTON1 确定 命令按钮 IDC_BUTTON2 退出 Step3:设计消息处理成员函数
使用MFC Class Wizard设计成员变量和消息处理函数。 (1)为对话框设置绑定相关控件的2个成员变量
控件名 成员变量名 种类 数据类型 字符个数 IDC_EDIT1 m_pwd Value Cstring 6 IDC_STATIC2 m_OK Value Cstring 20 (2)添加2个消息处理成员函数
①“确定”按钮的BN_CLICKED消息处理函数OnButton1( ),用于接收用户输入,检测密码的合法性。
为OnButton1()添加的代码如下:
//TODO Add your control notification handler code here UpdateDtata(); // if(m_pwd==”pwd123”) m_OK=”密码正确!”; else
m_OK=”密码错误!”; UpdateData(FALSE);
②“退出”按钮的BN_CLICKED消息处理函数OnButton2( ),用于结束工程的运行。
为OnButton2()添加的代码如下:
//TODO Add your control notification handler code here EndDialog(1);
Step4:工程的编译、链接和运行
【Job3】在Csae2的基础上,增加如下功能:当连续三次输入错误密码,则拒绝再次输入,并输出“对不起,再见!”。 3.3 按钮控件
MFC提供有三种标准按钮控件:命令按钮(Button)、复选框按钮(Check Box)和单选按钮(Radio Button),它们都是CButton类的派生类。
命令按钮也称按键按钮,可以触发某个命令的执行,这种按钮不会被锁定,响应过后会自动弹起恢复原状。
复选框和单选按钮都属于选择性按钮,都有两种状态:选择(1)和未选择(0)。它们的差别在于:复选框是相容性按钮,即在一组复选框中可同时有多个复选框处于选择状态;而单选按钮则是互斥性按钮,即在一组单选按钮中只能有一个处于选择状态,当一个单选按钮被选中时,同组的其他单选按钮自动落选。 【Case3】简单计算器(1)
本实例利用命令按钮和单选按钮设计一个只进行四则算术运算的简单计算器。 Step1:建立工程架构
使用MFC AppWizard建立一个对话框工程,工程名为:Calculator01 Step2:设计窗口界面
使用对话框编辑器设计工程的窗口界面,效果如图所示。各控件的属性设置如下: 控件名 ID 标题 其他属性 编辑框 IDC_EDIT1 无 Left 编辑框 IDC_EDIT2 无 Left
静态文本 IDC_STATIC1 无 Left, Client edge 静态文本 IDC_STATIC2 运算数1 Center 静态文本 IDC_STATIC3 运算数2 Center 静态文本 IDC_STATIC4 结果 Center 组框 IDC_STATIC5 运算符 单选按钮 IDC_RADIO1 +
单选按钮 IDC_RADIO2 - 单选按钮 IDC_RADIO3 × 单选按钮 IDC_RADIO4 ÷ 命令按钮 IDC_BUTTON1 = 命令按钮 IDC_BUTTON2 退出
Step3:设计消息处理成员函数
使用MFC Class Wizard设计成员变量和消息处理函数。 (1)为对话框设置绑定相关控件的成员变量
控件ID 成员变量名 变量类型 值域 IDC_EDIT1 m_num1 Value,double IDC_EDIT2 m_num2 Value,double IDC_STATIC1 m_show Value,Cstring 10
(2)在程序Calculator01Dlg.cpp的首部定义一个可被各控件访问的全局变量: int operator; //运算符编号 (3)添加6个成员函数
①建立各单选按钮的BN_CLICKED消息处理函数,用于确定运算。在函数中只需编写一个语句:
OnRadio1( )函数中为:operator=1; //加法 OnRadio2( )函数中为:operator=2; //减法 OnRadio3( )函数中为:operator=3; //乘法 OnRadio4( )函数中为:operator=4; //除法
②建立“=”命令按钮的BN_CLICKED消息处理函数OnButton1(),用于执行指定的算术运算并显示运算结果。代码如下:
//TODO Add your control notification handler code here double r; UpdateData(); switch(operator){
case 1: r=m_num1+m_num2;break; case 2: r=m_num1-m_num2; break; case 3: r=m_num1*m_num2; break;
case 4:
if(m_num!=0) r=m_num1/m_num2;
else{ MessageBox(“除数为0!”,”计算器”);return;} }
m_show.Format(“.3f”, r); UpdateData(FALSE);
③建立“退出”按钮的BN_CLICKED消息处理函数OnButton2( ),用于结束工程的运行。
为OnButton2()添加的代码如下:
//TODO Add your control notification handler code here EndDialog(1);
Step4:工程的编译、链接和运行
【Job4】在Case3中去掉“=”按钮,该作什么修改? 请完成工程Calculator01V2 3.4 列表框和组合框控件
列表框(ListBox)是一个列有若干可选项目的输入窗口,它允许用户从所列出的表项中进行单项或多项选择,被选择的项呈高亮度显示,并且一般带有一个垂直滚动条。
组合框(ComboBox)是由一个编辑框和一个列表框组成。用户既可以在编辑框中输入,也可以在列表框中选择一个表项来完成输入。 【Case4】简单计算器(2)
修改Case3,用一个列表框替换四个单选按钮,如图26所示。 Step1:建立一个对话框工程架构,工程名为:Calculator02 Step2:除了列表框外,其余同Case3。
在列表框的属性对话框里,设置ID为:IDC_LIST1;在“样式”(Styles)选项卡中清除对“排序”(Sort)选项的选择。如图27所示。
Step3:
(1)为对话框设置绑定相关控件的成员变量
除m_num1、m_num2和m_show外,再为列表框添加一个m_list变量,Control类,CListBox型。
(2) 建立对话框的WN_INITDIALOG消息函数OnInitDialog(),用于初始化列表框,