MFC edit control 用法(總結)

2021-10-01 01:09:28 字數 1581 閱讀 5380

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 元素周圍生成額外的空白區。空白區 通常是指其他...