editcontrol是在mfc對話方塊中最頻繁的使用的控制項之一
vc++2005提供editcontrol的屬性和控制項事件操作簡單方便
1只允許輸入數字
如果設定editcontrol中只能輸入數字,在vc6.0中需要編寫乙個派生類來達到目的,而在vc++2005下只需要在屬性對話方塊中將number的屬性值設
為true就可以了.
2獲取editcontrol的內容
兩種方法
第一種,利用mfc應用程式嚮導生成乙個基於對話方塊的應用程式,從資源檢視中選擇該dialog窗體,利用右側的工具箱,向dialog內新增乙個
editcontrol項,宣告控制項變數的類別為value,變數型別為cstring,變數名為m_sedit_content.
cstring m_sedit_content;
cstring s;
updatedata(true);
s=m_sedit_content.getstring();
messagebox(s,_t("獲取編輯框的內容"),mb_ok);
s.releasebuffer();
這樣就取得了編輯框的內容
updatedata(true);這句**很重要,它的作用是將輸入的資料裝入editcontrol對應的變數m_sedit_content中.
由於mfc應用程式嚮導預設是使用unicode庫,所以messagebox中的字串需要用_t(),否則會出現const char轉換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("獲取文字框的內容"),mb_ok);
s.releasebuffer();
如果不是unicode下獲取編輯框內容的函式就是getwindowtexta
3將editcontrol中的內容轉化為整數
在限制編輯框只能數字之後,要將字串轉化為整數
宣告控制項變數的類別為value,變數型別為cstring,變數名為m_sedit_content.
cstring s;
updatedata(true);
s=m_sedit_content.getstring();
int n=_tstoi(s);
s.releasebuffer();
n就是所需要的整數
在vc2005下字串轉換成整數需要_tstoi這個函式
4限制編輯框的輸入長度
宣告控制項變數的類別為control,變數型別為cedit,變數名為m_edit_content.
在對話方塊初始化的地方寫m_edit_content.setlimittext(1);
編輯框就只能輸入乙個字元了.
開啟**
取消來自:
MFC Edit Control 捕捉回車用法
標頭檔案新增 virtual bool pretranslatemessage msg pmsg 這個函式是捕獲到所有edit control回車的訊息。bool ctext1dlg pretranslatemessage msg pmsg if getfocus getdlgitem idc ed...
用Margin還是用Padding
用margin還是用padding 何時應當使用margin 需要在border外側新增空白時。空白處不需要背景 色 時。上下相連的兩個盒子之間的空白,需要相互抵消時。如15px 20px的margin,將得到20px的空白。何時應當時用padding 需要在border內測新增空白時。空白處需要背...
用Margin還是用Padding
用margin還是用padding這個問題是每個學習css高階時的必經之路。css邊距屬性定義元素周圍的空間。通過使用單獨的屬性,可以對上 右 下 左的外邊距進行設定。也可以使用簡寫的外邊距屬性同時改變所有的外邊距。w3school 邊界 margin 元素周圍生成額外的空白區。空白區 通常是指其他...