对话框控件的一些操作 (liu_tang的专栏)

<script language="javascript" src="http://tag.csdn.net/urltag.aspx" type="text/javascript"></script>
<script type="text/javascript">function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>
 

创建非模态对话框,变量不能是局部的,可有两种方法
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); 


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值