Windows程序设计 对话框控件访问的七种方法(2)

    在对话框控件访问的七种方法(1)中介绍了对话框空间访问的第一类方法,下面介绍对话框控件访问的第二类方法:

在Windows程序设计中,基于对话框的程序设计,对对话框上控件的访问有多种方法。在这里我总结七种方法,但这七种方法我可以把他们分为三大类。下面通过一个小示例演示对话框控件访问的几种方法:

    上图为一个小的对话框应用程序的示例程序,实现的功能是:分别在Number1和Number2所标示的编辑框中输入数字,当点击Add按钮时,将Number1和Number2所标示的编辑框中的数字进行相加,将求和结果写到Number3所标示的编辑框中。

    要想将两个编辑框中的数字进行相加,首先要定位到对应的控件,然后获取控件上的文本,最后输出到第三个编辑框控件上。下面就具体介绍几种访问控件的方法:

第二类方法:

    第一类的几种方法主要是通过CWnd类的成员函数,访问对话框的控件,然后进行操作。第二类方法主要是通过对控件关联对应的变量或对象,通过对变量和对象的操作访问对话框控件。

    在利用MFC进行程序设计时,每一个资源都要与一个特定的类相关联,当我们创建对话框资源时,我们将给对话框资源与一个新的对话框类相关联。AppWizard会程序添加该类的构造函数和成员函数DoDataExchange(),该成员函数用于对话框上控件与相关联的变量或者对象的数据交换。

具体操作如下:

    方法4:首先我们通过ClassWizard为对话框上的三个编辑框控件关联三个整形变量,DoDataExchange()函数中系统自动添加的代码如下所示:

DDX_Text(pDX, IDC_EDIT1, m_num1);

DDX_Text(pDX, IDC_EDIT2, m_num2);

DDX_Text(pDX, IDC_EDIT3, m_num3);

DDX_Text()函数完成对话框控件的字符与整形数值之间的转换,然后我们可以直接对其正型变量进行操作,就是对控件的操作:示例代码如下:

 UpdateData();
 m_num3=m_num1+m_num2;
 UpdateData(FALSE);

注意:参考MSDN可知,框架窗口不会自动调用DoDataExchange()函数,该函数是通过 UpdateData()函数来初始化控件和更新控件的,所以在此处要调用 UpdateData()函数。

方法5:在方法4中,对话框上的编辑框控件关联的是正型变量,而MFC为我们封装了编辑框控件的CEdit类,所以我们也可以为编辑框控件关联CEdit对象。

如:CEdit m_edit1;

     CEdit m_edit2;

     CEdit m_edit3;

DoDataExchange()中添加的代码如下所示:

 DDX_Control(pDX, IDC_EDIT3, m_edit3);
 DDX_Control(pDX, IDC_EDIT2, m_edit2);
 DDX_Control(pDX, IDC_EDIT1, m_edit1);

然后我们就可以用m_edit1对象调用其成员函数,完成控件的访问。示例代码如下所示:

 int num1,num2,num3;
 char ch1[10],ch2[10],ch3[10];

 m_edit1.GetWindowText(ch1,10);
 m_edit2.GetWindowText(ch2,10);

 num1=atoi(ch1);
 num2=atoi(ch2);
 num3=num1+num2;
 itoa(num3,ch3,10);

 m_edit3.SetWindowText(ch3);

以上两种方法是对话框上控件访问的第二类方法:为控件关联对应的变量或对象。在对话框控件访问的七种方法(3)中将介绍第三类方法:发送消息。

posted @ 2011-09-13 13:47  乘风736  阅读(881)  评论(0编辑  收藏  举报