CComboBox類使用總結(sqlitetest)

1、在單文檔創建一個組合框,具體步驟如下:

.h文件定義一個CComboBox *MyBox;

.cc文件中的一個ID:#define WM_MY_CHGCOMBOBOX 1

 在消息映射create函數中添加如下代碼:
MyBox= new CComboBox;
MyBox->Create(ES_MULTILINE|CBS_DROPDOWN|WS_VISIBLE|WS_VSCROLL|WS_TABSTOP|CBS_DROPDOWNLIST,CRect(10,355+25,180,500+25),this, WM_MY_CHGCOMBOBOX);//500 |CBS_AUTOHSCROLL


2、添加選擇消息映射

.h文件中添加afx_msg void OnMySelchangeCombo();

.cpp文件中,在消息映射的申明處添加ON_CBN_SELCHANGE(WM_MY_CHGCOMBOBOX, OnMySelchangeCombo)//WM_MY_CHGCOMBOBOX爲該組合框的ID 

然後編寫void Boxtest::OnMySelchangeCombo()實現指定的功能。

例如要將當前行的文本信息顯示在指定的編輯框中,就可以OnMySelchangeCombo()函數中添加如下代碼:

//獲取當前組合框的當前選項的文本值

int   nSel   =   MyBox->GetCurSel();   
 CString   strText;   
MyBox->GetLBText(nSel,strText);  

//在編輯框中顯示字符串的值

Edit1->SetWindowText(strText);



3、消息響應

.h文件中添加afx_msg LRESULT OnMyChkboxMsg(WPARAM wParam, LPARAM lParam);

.cpp文件中添加ON_MESSAGE(WM_MY_UPDATACHKBOX, OnMyChkboxMsg)//WM_MY_UPDATACHKBOX爲消息映射的ID

然後編寫LRESULT CEDIDPRJ7View::OnMyChkboxMsg(WPARAM wParam, LPARAM lParam)函數實現功能;

並且還要在添加消息發送代碼:SendMessage(WM_MY_UPDATACHKBOX)。


4、防止消息框中的消息重複

在使用的過程中,我們可能會在某個按鍵的觸發下爲組合框添加我們所需要的文本。但是這樣沒按下一次,組合框就添加了一次文本信息,這樣就會導致重複。故可在函數中添加這樣的一行代碼。實現對上次組合框內容的清除。代碼如下:

((CComboBox*)GetDlgItem( WM_MY_CHGCOMBOBOX))->ResetContent(); 




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章