CComboBox类使用总结(sqlitetest)

来源:互联网 发布:方正字库 mac 编辑:程序博客网 时间:2024/04/30 09:58

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(); 




0 0
原创粉丝点击