1、在一组单选按钮中用户只能而且必须选择其中的一个,其余的单选按钮会自动落选。也就是说,一组单选按钮是互斥的,但总有一个处于选中状态。(6) 复选框 (Check Box) 复选框的外观是一个空心方框,将其选中后方框中会标上一个“”(在Windows 3.x时代则标记为“”),在一组复选框中,用户可以选择一个或多个,也可以一个都不选。就是说,一组复选框相互之间是相容的。复选框通常与一个布尔量(逻辑量)相联系,用来表示是不是某种事物,或有没有某种性质,或在不在某种状态等。(7) 群组框(Group Box) 群组框常用于封装一组单选按钮,或集中布置一组复选框。与静态文本框一样,群组框也不会发出或响应
2、消息。常用控件的外观如图 所示。常用的控件 使用控件设计计算器下面从不同的角度来设计风格各异的计算器,以了解如何使用控件。典型实例用编辑框、静态文本框及按钮设计计算器首先用编辑框、静态文本框及按钮来设计一个具有【加】、【减】、【乘】、【除】功能的计算器,如图 所示,以此掌握这几个控件的使用。 具有【加】、【减】、【乘】、【除】功能的计算器 典型实例 用编辑框、静态文本框及按钮设计计算器1利用APPWizard建立对话框工程“D:EXAMPLEEX_Calculator01”。(1) 选择菜单栏的【File】/【New】命令,将弹出一个如图 所示的对话框。在该对话框中选择【Project】选项卡
3、,在左面的列表框中选中 “MFC APPWizardexe,接下来在对话框中输入工程名及其路径如下:【Project Name】:EX_Calculator01【Location】:D:EXAMPLE在【Project Name】编辑框中输入的是工程的名字。应尽量按照C+的标识符规则来命名,即只使用字母、数字和下划线“_”, 且不以数字开头。本例我们要建立的工程名字为“EX_Calculator01”。在【Location】编辑框中输入的是所要建立的工程的存放位置(也可以单击它右侧的按钮选择所要建立的工程的存放位置)。本例我们把工程“EX_Calculator01”存放在“D:EXAMPLE”
4、文件夹中。(2) 单击 OK 按钮。 创建应用程序框架(3) 在接下来的【MFC APPWizard-Step1】窗口中选择将要建立的工程类型,如图所示。通过MFC APPWizard可以建立如下3种类型的工程。【Single document】:单文档工程。【Multiple documents】:多文档工程。【Dialog based】:对话框工程。我们要建立的是对话框工程,在此处选择【Dialog based】。(4) 单击 Next 按钮。 选择工程类型(5) 在接下来的【MFC APPWizard-Step2】、【MFC APPWizard-Step3】以及【MFC APPWizar
5、d-Step4】窗口中均接受默认设置。(6) 在【MFC APPWizard-Step4】窗口中单击 Finish 按钮,应用程序基本框架创 建完毕(因为在【MFC APPWizard-Step2】、【MFC APPWizard-Step3】以及【MFC APPWizard-Step4】窗口中使用默认设置,所以也可以在【MFC APPWizard-Step1】窗口中选择工程类型后直接单击 Finish 按钮)。(7) 程序框架创建完毕后出现如图2-5所示的【New Project Information窗口,显示MFC APPWizard为工程“EX_Calculator01”建立的类等信息,
6、单击 OK 按钮接受图2-5中的信息。 新工程信息 (8) 最后,会出现如图所示的待编辑的处对话框窗口。 待编辑的对话框窗口提示:因为我们是利用MFC应用程序向导建立应用程序框架,所以在创建新工程时,一定要确保选中【MFC APPWizardexe】。2设计计算器窗口(界面)。在如图所示窗口中,按如图所示设计计算器对话框,具体作法遵循下面的步骤。(1) 在控件(Control)工具栏中选择编辑框控件、把鼠标移动到计算器窗口的适当位置,按下鼠标左键拖曳鼠标,画出一个大小合适的编辑框。(2) 右键单击编辑框,在如图所示的快捷菜单中选择【Properties】命令。 选择【Properties】命令
7、(3) 在随后出现的【Edit Properties】对话框中设置刚刚建立的编辑框的ID属性, 如图 所示。 设置编辑框属性本实例我们接受默认的ID属性“IDC_EDITl”。(4) 关闭属性对话框。(5) 按照同样的方法建立【输入数据2】编辑框和【计算结果】编辑框。(6) 设置各个编辑框的名字。 选择控件工具栏中的静态文本框控件,移动鼠标到编辑框的上部,按下左 键拖曳鼠标画出一个大小合适的静态文本框,右键单击该文本框,在弹出的快捷菜单中选择【Properties】命令,弹出如图 所示的【Text Properties】对话框,在该对话框的【标题】栏中键入编辑框的名字“输入数据1”。图2-9
8、设定编辑框名字(7) 添加“加”按钮。在控件工具栏中选择控件,然后在计算器窗口的下部按下左键拖曳鼠标画 出一个大小合适的按钮,右键单击该按钮,在弹出的快捷菜单中选择【Properties】命令,弹出如图 所示的【Push Button Properties】对话框,在该对话框的【ID】栏中输入按钮的ID属性。为了以后在编程时便于记忆,我们不用默认值,将“加按钮的D属性设置为“IDC_ADD_BUTTON”,按钮名为“加”。图2-10 设置“加”按钮属性(8) 按照同样的方法在计算器窗口中添加“减”、“乘”、“除”按钮,3个按钮的ID属性分别为“IDC_MINUS_BUTTON”、“IDC_TI
9、MES_BUTTON”和“IDC_DIVIDE_BUTTON”。(9) 删除计算器窗口中的“TODO”行、保留窗口中的按钮和按钮,这是对话框所推荐的两个控件。按钮用于关闭对话框并接受对话框中出现的所有信息;按钮用于关闭对话框并忽略对话框打开后对数据或选项所做的任何改变。对于这两个按钮,无需进行任何处理,MFC基本类库会自动处理这两个控件。3添加变量。如果我们要在程序中访问对话框中的控件,就必须给这些控件分别添加变量。所谓添加变量,就是给程序中要用到的控件对象定义一个与之关联的变量作为控件的代理。以后用到该控件对象时,访问其代理变量即可。就是说,一个变最代表一个具体的控件对象。例如,要获得用户在
10、编辑框中输入的内容,就得给编辑框添加变量,通过调用该变量的相关函数即可获得编辑框的输入内容。下面为【输入数据1】编辑框添加变量。(1) 右键单击【输入数据1】编辑框,在如图 所示的快捷菜单中选择【ClassWizard】命令,弹出【MFC ClassWizard】对话框,在该对话框的顶部选择【Member Variables】(成员变量)选项卡,如图 所示。【MFC ClassWizard】对话框(2) 接下来,在该对话框中做如下设置:【Class name】:CEX_Calculator01Dlg【Control IDs】:lDC_EDIT1(3) 单击按钮,弹出如图 所示的【Add Mem
11、ber Variable】对话 框。在该对话框中设置如下变量的名字、类别及类型。【Member variable name:】:m_Edit1【Category:Control(控件)【Variable Type:CEdit 添加变量对话框(4) 单击按钮。(5) 按照同样的方法给【输入数据2】编辑框添加变量“m_Edit2”,变量类别为“Control”, 变量类型为“Cedit”;给【计算结果】编辑框添加变量“m_Edit3”,但是“m_Edit3”的变量类别为“Value”、 变量类型为“Cstring”。4添加函数及代码。(1) 右键单击“加”按钮,在弹出的快捷菜单中选择【ClassW
12、izard】命令,在 【MFC ClassWizard】对话框中选择【Member Maps】选项卡,在如图 所示的对话框中做如下设置:CEx_calculator01DlgIDC_ADD_BUTTON【Messages】:BN_CLICKED 添加函数(2) 单击按钮,为“加”按钮添加单击事件的处理函数,在如图 所示的【Add Member Function】对话框中接受默认的函数名字“OnAddButton”。(3) 在如图 所示对话框中单击按钮。,返回如图 所示对话框。 输入函数名字(4) 添加代码。在如图 所示对话框中单击按钮,在OnAddButton() 函数中为“加按钮处理函数加入
13、下面阴影部分的代码(在本书后面的例子中,凡是带底纹部分的代码,都是程序设计者添加的)。void CEX_Calculator01Dlg:OnAddButton() / TODO: Add your control notification handler code here/定义两个字符串,用于存放【输入数据1】和【输入数据2】编辑框输入的内容 char cEdit110, cEdit210; double dEdit1, dEdit2, dEdit3; /定义3个双精度变量,用于存放3个编辑框的数据/定义一个字符串,用于存放【计算结果】编辑框要输入的内容 char cResult10;/调用
14、GetWindowText()函数获得【输入数据1】编辑框的输入内容,存放到字符串cEdit1中 m_Edit1.GetWindowText(cEdit1,10);/调用GetWindowText()函数获得【输入数据2】编辑框的输入内容,存放到字符串cEdit2中 m_Edit2.GetWindowText(cEdit2,10); dEdit1=atof(LPCTSTR)cEdit1); /将字符串1转化为数值 dEdit2=atof(LPCTSTR)cEdit2); /将字符串2转化为数值 dEdit3=dEdit1+dEdit2; /计算输入的两个数之和 _gcvt(dEdit3,10,cResult); /把计算结果转化为字符串,存放到cResult中 m_Edit3=(LPCTSTR) cResul
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1