对话框控件的一些操作

 

创建非模态对话框,变量不能是局部的,可有两种方法
1,把变量声明为成员变量。
2,把变量声明为指针在堆上创建,如
   CTestDlg *pDlg = new CTestDlg();
   pDlg->Create(IDD_DIALOG, this);
   pDlg->ShowWindow(TRUE);

看了孙鑫老师的视屏教程,收获良多,以下就是一些。
操纵控件可有很多种方法,以CEdit控件为例,我们首先创建三个CEdit控件,ID为IDC_EDIT1,

IDC_EDIT2,IDC_EDIT3,然后实现在1,2中输入数字,相加后放入第三个控件中
实现方法如下
1,通过GetWindowText,SetWindowText实现
   首先我们通过GetDlgItem取得指定控件的指针,然后通过上面两个函数获取和设定窗口文本,实现方 

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

 GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10);
 GetDlgItem(IDC_EDIT2)->GetWindowText(ch2,10);

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

 GetDlgItem(IDC_EDIT3)->SetWindowText(ch3);

2,通过GetDlgItemText,SetDlgItemText实现
   这两个函数实现获取和设置控件文本,如下
 int num1,num2,num3;
 char ch1[10],ch2[10],ch3[10];

 GetDlgItemText(IDC_EDIT1,ch1,10);
 GetDlgItemText(IDC_EDIT2,ch2,10);

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

 SetDlgItemText(IDC_EDIT3,ch3);

3,通过GetDlgItemInt,SetDlgItemInt实现
 int num1,num2,num3;
 num1=GetDlgItemInt(IDC_EDIT1);
 num2=GetDlgItemInt(IDC_EDIT2);

 num3=num1+num2;
 SetDlgItemInt(IDC_EDIT3,num3);

4,把控件与变量关联在一起,我们在AppWizard里设定三个变量,m_Num1, m_Num2, m_Num3,类型均为int
   则实现如下
 UpdateData();
 m_num3=m_num1+m_num2;
 UpdateData(FALSE);

5,在AppWizard里设定三个变量m_edit1,m_edit2,m_edit3,设置成control类型,则为下,此时该变量

  就相当于一个Edit控件
 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);

6,通过SendMessage和WM_GETTEXT,WM_SETTEXT消息
 int num1,num2,num3;
 char ch1[10],ch2[10],ch3[10];

 m_edit1.SendMessage(WM_GETTEXT,10,(LPARAM)ch1);
 m_edit2.SendMessage(WM_GETTEXT,10,(LPARAM)ch2);

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

 m_edit3.SendMessage(WM_SETTEXT,0,(LPARAM)ch3);

7,通过SendDlgItemMessage和WM_GETTEXT,WM_SETTEXT
 int num1,num2,num3;
 char ch1[10],ch2[10],ch3[10];

 SendDlgItemMessage(IDC_EDIT1,WM_GETTEXT,10,(LPARAM)ch1);
 SendDlgItemMessage(IDC_EDIT2,WM_GETTEXT,10,(LPARAM)ch2);

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

 SendDlgItemMessage(IDC_EDIT3,WM_SETTEXT,0,(LPARAM)ch3);
 m_edit3.SetWindowText(ch3); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值