您的位置:首页 > 其它

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

2006-09-13 10:53 323 查看
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();}

对话框控件的一些操作

创建非模态对话框,变量不能是局部的,可有两种方法
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐