MFC中Edit控件的用法整理

MFC中Edit用法整理

众所周知,现在微软出台的编译器已经很多了,如vc++6.0,vs2005,vs2008,vs2010等,虽然变化多样,但是万变不离其根本,最根本用法没有多大变化。打开你所安装的编译器,然后点击新建项目,弹出创建器对话框,以对话框程序为例。点击新建一个基于MFC的应用程序,创建对话框应用程序,在资源视图中,拖放Edit控件到对话框上,在编辑框控件上点右键,修改ID为一个有意义的标识。在View ->ClassWizard,在弹出的对话框中,选择Member Variables,找到刚才的编辑框ID,关联变量。关联变量分为两种。一种是Control变量,一种是Values变量。同一个控件,这两个变量都可以定义,也可定义其中的一个。
例如:CString m_nName;  DDX_Text(pDX, IDC_EDIT_FIND, m_nName);
    CEdit    m_ncName; DDX_Control(pDX, IDC_EDIT_FIND, m_ncName);
方法一:CString str;
GetDlgItem( IDC_EDIT_FIND)->GetWindowText(str);
CString str1=_T("abcdef");//_T是Unicode编码中的
GetDlgItem(IDC_EDIT_FIND)->SetWindowTex(str);
方法二:CString str;
m_ncName.GetWindowText(str);
CString str1=_T("abcdef");
m_ncName.SetWindowText(str1);
方法三:CString str1=_T("abcdef");
UpdateData(True);
m_nName=str1;
UpdateData(False);
方法四:分别拖两个编辑框IDC_EDIT1,IDC_EDIT2,IDC_EDIT3
int num1,num2,num3;
char val1[10],char val2[10],char val3[10];
GetDlgItemText(IDC_EDIT1,val1,10);
GetDlgItemText(IDC_EDIT2,val2,10);
num1= atoi(ch1);
num2= atoi(ch2);
bum3=num1+num2;
itoa(num3,ch3,10);
SetDlgItemText(IDC_EDIT3,ch3);
方法五:这种方法主要原理是利用消息来传值的,使用SendMessage来实现,发送WM_GETTEXT窗口消息和WM_SETTEXT消息。还是基于方法四基础,如下:
int num1,num2,num3;
char val1[10],char val2[10],char val3[10];
::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd,WM_GETTEXT,10,(LPARAM)ch1);
::SendMessage(GetDlgItem(IDC_EDIT2)->m_hWnd,WM_GETTEXT,10,(LPARAM)ch2);或
::SendMessage(m_edit1.m_hWnd,WM_GETTEXT,10,(LPARAM)ch1);
::SendMessage(m_edit2.m_hWnd,WM_GETTEXT,10,(LPARAM)ch2);
num1 =atoi(ch1);
num2 =atoi(ch2);
num3 =num1+num2;
m_edit3.SendMessage(WM_SETTEXT,0,(LPARAM)ch3);
方法六:同样的也有另外一类API函数SendDlgItemMessage,跟方法五类似也可以实现效果。
int num1,num2,num3; char val1[10],char val2[10],char val3[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;
SendDlgItemMessage(IDC_EDIT3,WM_SETTEXT,0,(LPARAM)ch3);

博主设置当前文章不允许评论。

没有更多推荐了,返回首页