MFC里面的EDIT Control控件的用法是怎么樣的,1.怎么樣才能賦值給EDIT Control控件并在EDIT Control控件顯示出來;2.怎么取得EDIT Control控件的值并傳遞給一個變量?希望各位大俠幫幫忙!
//獲得EDIT
CEdit* pBoxOne;
pBoxOne = (CEdit*) GetDlgItem(IDC_EDIT1);
//付值
pBoxOne->SetWindowText( _T"FOO" );
//取值
CString str;
pBoxOne->GetWindowText(str);
GetDlgItem(IDC_EDIT1)->SetWindowText( _T"FOO" );
也可以
//取值
CString str;
GetDlgItem(IDC_EDIT1)->GetWindowText(str);
EditControl是在MFC對話框中最頻繁的使用的控件之一
VC++2005提供EditControl的屬性和控件事件操作簡單方便
1只允許輸入數(shù)字
如果設(shè)置EditControl中只能輸入數(shù)字,在VC6.0中需要編寫一個派生類來達(dá)到目的,而在VC++2005下只需要在屬性對話框中將Number的屬性值設(shè)
為True就可以了.
2獲取EditControl的內(nèi)容
兩種方法
第一種,利用MFC應(yīng)用程序向?qū)梢粋€基于對話框的應(yīng)用程序,從資源視圖中選擇該Dialog窗體,利用右側(cè)的工具箱,向Dialog內(nèi)添加一個
EditControl項,聲明控件變量的類別為Value,變量類型為CString,變量名為m_sEdit_Content.
CString m_sEdit_Content;
CString s;
UpdateData(true);
s=m_sEdit_Content.GetString();
MessageBox(s,_T("獲取編輯框的內(nèi)容"),MB_OK);
s.ReleaseBuffer();
這樣就取得了編輯框的內(nèi)容
UpdateData(true);這句代碼很重要,它的作用是將輸入的數(shù)據(jù)裝入EditControl對應(yīng)的變量m_sEdit_Content中.
由于MFC應(yīng)用程序向?qū)J(rèn)是使用Unicode庫,所以MessageBox中的字符串需要用_T(),否則會出現(xiàn)const char[]轉(zhuǎn)換LPCTSTR錯誤,如果不使用
Unicode庫就不需要_T().
第二種方法
聲明控件變量的類別為Control,變量類型為CEdit,變量名為m_Edit_Content.
代碼如下(Unicode)
CString s;
s.GetBufferSetLength(1024);
m_Edit_Content.GetWindowTextW(s.GetBuffer(),s.GetLength());
MessageBox(s,_T("獲取文本框的內(nèi)容"),MB_OK);
s.ReleaseBuffer();
如果不是Unicode下獲取編輯框內(nèi)容的函數(shù)就是GetWindowTextA
3將EditControl中的內(nèi)容轉(zhuǎn)化為整數(shù)
在限制編輯框只能數(shù)字之后,要將字符串轉(zhuǎn)化為整數(shù)
聲明控件變量的類別為Value,變量類型為CString,變量名為m_sEdit_Content.
CString s;
UpdateData(true);
s=m_sEdit_Content.GetString();
int n=_tstoi(s);
s.ReleaseBuffer();
n就是所需要的整數(shù)
在VC2005下字符串轉(zhuǎn)換成整數(shù)需要_tstoi這個函數(shù)
4限制編輯框的輸入長度
聲明控件變量的類別為Control,變量類型為CEdit,變量名為m_Edit_Content.
在對話框初始化的地方寫m_Edit_Content.SetLimitText(1);
編輯框就只能輸入一個字符了.