实验名称MFC基本控件的使用

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、实验名称:MFC基本控件的使用

2、实验目的:掌握编辑框类及其方法,熟练掌握利用编辑框类开发基于MFC的应用

程序的方法。

3、实验内容:使用MFC AppWizard创建如图一所示的基于对话窗的应用程序,实现算

术加、减、乘和除运算。

图一

4、程序实现方法:

(1)使用AppWizard建立应用程序框架

①在进入Visual C++ 6.0的第一个界面下,选择MFC AppWizard(exe),在Project name 文本输入框中输入新建的项目名称“计数器”,并设置其所在位置,单击OK按钮,如图二所示。

图二Visual C++ 6.0的第一个界面

②在MFC AppWizard的第一步中选择基本对话,如图三所示,其余的都采用默认选项。

图三MFC AppWizard的第一步界面

这样就建立了一个基于对话框的程序,如图四所示。

图四基于对话框的界面

(2)利用资源编辑器建立对话框

在图四的Resource View选项卡中打开Dialog资源组,本程序的工程文件名为计数器,因此,系统自动产生一个名为IDD_MY_DIALOG的资源文件,双击IDD_ MY_DIALOG,在右边的窗口中显示出待编辑的对话框。根据如图一所示的样式,利用Visual C++ 6.0的控键(Controls)建立对话框。

下面以“数据1”编辑框和“+”按钮为例介绍控件的创建过程,其他编辑框和按钮的创建可参照此操作:

①在图四中Controls的“编辑框”按钮上单击鼠标左键、在如图一所示的对话框编辑窗口上的“数据1”编辑框的位置上,按下鼠标左键,并拖动鼠标画出一个大小合适的编辑框。在编辑框上单击鼠标右键,在弹出的快捷莱单中选择Properties选项,此时弹出Edit Properties 属性设置对话框,如图五所示,在该对话框中输入ID属性。

图五Edit Properties对话框

②在图四中Controls的“按钮”按钮上单击鼠标左键,在图一的“+”按钮的位置上,按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。在按钮上单击鼠标右键,在弹出的快捷菜单中选择Properties项,此时也弹出Push Button Properties对话框,如图六所示,在该对话框中输入控件的ID值和Caption属住。

图六Push Button Properties对话框

按照上面的操作过程编辑其他按钮和编辑框等对象的属性。

对象ID Caption或说明

编辑框IDC_ITEM1_EDIT 计算数据1

编辑框IDC_ITEM2_EDIT 计算数据2

编辑框IDC_RESULT_EDIT 计算结果

按钮IDC_ADD_BUTTON +

按钮IDC_DIFFERENCE_BUTTON -

按钮IDC_MULTIPLY_BUTTON *

按钮IDC_DEVIDE_BUTTON /

按钮IDC_CLEAR_BUTTON Clear(清除)

按钮IDC_EXIT_BUTTON Exit(退出)

静态文本IDC_STATIC 数据1

静态文本IDC_STATIC 数据2

静态文本IDC_STATIC 结果

(3)添加代码

①给编辑框连接变量:在“数据l”编辑框上单击鼠标右键,在图四所示的快捷菜单中选择ClassWizard菜单项,弹出MFC ClassWizard对话框,选择Member Variables选项卡,如图七所示。在Control IDs列表框中选中IDC_ITEM1_EDIT,单击Add Variables按钮,在弹出的对话框中(如图八所示)连接变量m_Item1_Edit。按照上面的操作过程给另两个编辑框加入变量,如下所示:

图七MFC ClassWizard对话框中Member Variables选项卡

图八编辑框连接变量对话框

ID 变量变量类型

IDC_ITEM1_EDIT m_Item1_Edit CEdit

IDC_ITEM2_EDIT m_Item2_Edit CEdit

IDC_RESULT_EDIT m_Result_Edit Cstring

②给“+”按钮连接代码:在“+”按钮上单击鼠标右键,选择ClassWizard菜单项,在弹出的对话框中选择Messages Maps选项卡,在Object IDs列表框中选择IDC_ADD_BUTTON,在Messages 列表框中选择BN_CLICKED项,即选择单击按钮事件,如图九所示。

图九“+”按钮连接代码对话框

单击右边的Add Function按钮,在弹出的对话框中接受默认的名字。单击Edit Code 按钮,此时显示源代码文件,在函数OnAddButton()函数中输入下列代码:void CMyDlg::OnAddButton()

{

// TODO: Add your control notification handler code here

char cstrItem1[10],cstrItem2[10]; //变量定义。

double dfItem1,dfItem2,dfResult;

char cBuffer[50];

m_Item1_Edit.GetWindowText(cstrItem1,10);

m_Item2_Edit.GetWindowText(cstrItem2,10);

dfItem1=atof((LPCTSTR)cstrItem1);

dfItem2=atof((LPCTSTR)cstrItem2);

dfResult=dfItem1+dfItem2; //加法实现。

_gcvt(dfResult,10,cBuffer);

m_Result_Edit=(LPCTSTR)cBuffer;

UpdateData(FALSE);

}

定义两个字符串cstrltern1和cstrltem2,调用函数GetWindowText()将编辑框中的内容存储到这两个变量中。调用函数atof将字符串转换为浮点数。数据1和数据2相加后放入dfResult,然后调用函数_gcvt将结果转化为字符串存储在cBuffer中,最后调用函数UpdateData (FALSE)将窗口中所有编辑框的内容更新。

③同样可以给“-”、“*”和“/”按钮连接代码,不同的是消息映像函数中执行减、乘和除的操作。

“-”的操作代码如下:

void CMyDlg::OnDifferenceButton()

{

// TODO: Add your control notification handler code here

char cstrItem1[10],cstrItem2[10]; //变量定义。

double dfItem1,dfItem2,dfResult;

char cBuffer[50];

m_Item1_Edit.GetWindowText(cstrItem1,10);

m_Item2_Edit.GetWindowText(cstrItem2,10);

dfItem1=atof((LPCTSTR)cstrItem1);

dfItem2=atof((LPCTSTR)cstrItem2);

dfResult=dfItem1-dfItem2; //减法实现。

_gcvt(dfResult,10,cBuffer);

m_Result_Edit=(LPCTSTR)cBuffer;

UpdateData(FALSE);

}

“*”的操作代码如下:

void CMyDlg::OnMultiplyButton()

{

// TODO: Add your control notification handler code here

相关文档
最新文档