天天看點

C++對話框程式設計

1.先建立資源

2.View->ClassWizard->AddClass->new

3.建立ControlID與Member之間關系

4.調用Member控件的方法和設定屬性或消息映射。

常用控件方法和映射

CEdit

CEdit從CWnd繼承了重要的功能,要在CEdit對象中設定或擷取文本,使用CWnd成員函數SetWindowText和GetWindowText,可以設定和得到編輯控件的全部内容,即使它是一個多行控件。如果編輯控件是多行的,使用CEdit成員函數GetLine,GetSel,GetSel和ReplaceSel來擷取和寫入控件的部分文本。

· ON_EN_CHANGE 使用者采取的行動可能會改變編輯控件的文本。與EN_UPDATE通知消息不同,該通知是在Windows更新顯示之後發送的。
· ON_EN_ERRSPACE 編輯控件不能為特定請求配置設定足夠的空間。
· ON_EN_HSCROLL 使用者單擊了編輯控件中的水準滾動條,父視窗在螢幕更新之前被通知。
· ON_EN_KILLFOCUS 編輯控件失去輸入焦點。
· ON_EN_MAXTEXT 目前輸入超過了為編輯控件指定的數目,并作截尾處理。當編輯控件不具有ON_EN_HSCROLL風格且要輸入的字元會超過編輯控件的寬度時,發送消息。當編輯控件不具有ON_EN_VSCROLL風格且要輸入的字元會超過編輯控件的高度時,也會發送消息。
· ON_EN_SETFOCUS 編輯控件獲得焦點。
· ON_EN_UPDATE 編輯控件将要顯示變動的文本。在控件對文本格式化之後但在顯示文本之前發送消息,以便在必要時改變視窗尺寸。
· ON_EN_VSCROLL 使用者單擊了編輯控件中的垂直滾動條,父視窗在螢幕更新之前被通知。

CComboBox

Simple 總是可見 編輯控件
Drop-down 當使用者單擊控件邊上的下拉箭頭時 編輯控件
Drop-downlist 當使用者單擊控件邊上的下拉箭頭時 靜态控件
· ON_CBN_CLOSEUP (Windows 3.1及更高版本)組合框的清單已被關閉。對于風格為CBS_SIMPLE的組合框來說,不會發送該通知消息。
· ON_CBN_DBCLICK 使用者輕按兩下了清單框中的一個字元串。隻對風格為CBS_SIMPLE的組合框發送。對于風格為CBS_DROPDOWN或CBS_DROPDOWNLIST的組合框來說,不會出現輕按兩下的消息,因為一次單擊就會使下拉清單隐藏或顯示了。
· ON_CBN_DROPDOWN 下拉出下拉清單(變為可見)。隻對風格為CBS_DROPDOWN或CBS_DROPDOWNLIST的組合框起作用。
· ON_CBN_EDITCHANGE 使用者發出了一個可能改變編輯控件中文本的動作。與消息CBN_EDITUPDATE不同,本消息是在Windows重新整理螢幕之後發出的。風格為CBS_DROPDOWNLIST的組合框沒有該通知。
· ON_CBN_EDITUPDATE 編輯控件部分将顯示變化了的文本。本通知消息在控件已經格式化了文本但沒有顯示時發送。風格為CBS_DROPDOWNLIST的組合框沒有該通知。
· ON_CBN_ERRSPACE 不能為組合框配置設定足夠的記憶體進行響應某個請求。
· ON_CBN_SELENDCANCEL (Wndows 3.1及更高版本)表明使用者的選擇将被忽略。使用者在單擊了一個項之後,又單擊了另外一個視窗或控件隐藏了組合框的下拉清單。此通知消息在CBN_CLOSEUP消息之前發送,以表明使用者的選擇将被忽略。即使沒有發送CBN_CLOSEUP通知消息,也會發送CBN_SELENDCANCEL或CBN_SELENDOK消息(例如風格為CBS_SIMPLE的組合框)。
· ON_CBN_SELENDOK 使用者在選擇了一項以後,要麼按了ENTER鍵,要麼按了向下箭頭鍵,進而隐藏了組合框的清單。此通知消息在CBN_CLOSEUP之前發送,表明使用者的選擇将不被認為是有效的。即使沒有發送CBN_CLOSEUP通知消息,也會發送CBN_SELENDCANCEL或CBN_SEL-ENDOK消息(例如風格為CBS_SIMPLE的組合框)。
· ON_CBN_KILLFOCUS 組合框将失去輸入焦點。
· ON_CBN_SELCHANGE 使用者在清單中單擊或者利用箭頭鍵選擇了另一個項,進而引起了選中項的改變。在處理此消息時,編輯控件中的文本隻能通過GetLBText或者類似的某個函數存取。不能使用GetWindowText函數。
· ON_CBN_SETFOCUS 組合框獲得輸入焦點。

CButton

映射入口 何時向父對象發送消息
ON_BN_CLICKED 使用者單擊按鈕時
ON_BN_DOUBLECLICKED 使用者輕按兩下按鈕時