我正在使用CComboBox类型的Combo-box。在其中,我在对话框初始化时填充状态值和一个特殊值“Other”(如果某些用户想要进入不同的状态)。当我选择其他时,我希望组合框将文本显示为“在此输入”而不是选择的值(即其他),但它不显示。
例如: 假设我在组合框中将状态填充为State1,State2,State3和Other。当我选择State1时,组合框应该在其编辑控件中显示State1。但是当我选择“其他”时,组合框应该在其编辑控件中显示“在此处键入”而不是“其他”。
为此,如果用户选择了其他,我已检查"OnCbnSelchangeCmbState"
事件
如果他有,那我用SetWindowText(_T("Type here"))
我试过的第二种方法是使用ReplaceSel(_T("Type here"))
组合框在OnCbnEditchangeCmbState事件中显示“在此处输入”,但之后它正在设置空文本。
为什么会这样?
m_Cmb_State.GetLBText(m_Cmb_State.GetCurSel(), csState);
if (0 == csState.CompareNoCase(_T("OTHER")))
{
m_pComboEdit->ReplaceSel(_T("Type here..."));
}