替换选定的组合框文本

时间:2015-07-22 10:25:20

标签: c++ windows combobox mfc

我正在使用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..."));
}

0 个答案:

没有答案