MFC Combobox SetWindowText 问题 设置DropDown风格的Combobox
我想设置下拉框显示的内容,如果选择了1分钟,就显示1,选2分钟显示2(去掉单位)
在Selchange和Selendok里面用SetWindowText都不好用,怎么解决这个问题呢 展开
vc6下测试OK方法如下
给 combobox控件 关联 CComboBox类变量 m_combo 添加 CBN_SELCHANGE 消息响应函数
void CMfcdlgDlg::OnSelchangeCombo1()
{
bFlag = TRUE;
}
给对话框 添加 BOOL型成员变量 bFlag 对话框构造函数初始化 为FALSE
给 对话框添加WM_CTLCOLOREDIT 消息响应函数 在他的开头添加if语句判断bFlag
HBRUSH CMfcdlgDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
/************************/
if(bFlag)
{
CString s;
//s.Format(_T("%d"), m_combo.GetCurSel()+1);
m_combo.GetLBText(m_combo.GetCurSel(), s);
s = s.Left(1);
m_combo.SetWindowText(s);
bFlag = FALSE;
}/************************/
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
// TODO: Return a different brush if the default is not desired
return hbr;
}
还有一个问题,也是Combobox的。Combobox里面,3行,001;002;003,可以修改的(DropDown),我想在删除的时候,下拉框里面的001、002、003是保留的,就是说,下拉框里面至少要有表示序号的三个字符,怎么做到呢?
谢谢