CComboBox MFC 控件出现问题

Posted

技术标签:

【中文标题】CComboBox MFC 控件出现问题【英文标题】:Getting issue with CComboBox MFC control 【发布时间】:2013-02-01 09:07:08 【问题描述】:

我在 MFC 中有一个带有下拉属性的组合框。

当我打开一个包含此组合框的对话框时,该组合框中的文本会突出显示。当我点击它时,就在这个组合框的编辑字段中的最后一个字符旁边,假设我插入了一个字符 C,它写在末尾,但光标移动到开头。

这种情况只发生过一次,如果我将光标移动到结束并开始写入,一切正常。

当焦点丢失时,再次编辑它会导致上述问题。

在代码中也没有对此控件进行任何特殊处理。

我不明白,为什么会这样?

任何建议或建议都会有所帮助。

谢谢

【问题讨论】:

MESSAGE_MAP 对组合框控件 id 有什么影响? 它的id是“8002”,只处理一条消息“ON_CBN_SELCHANGE” 是所有者抽奖组合吗? 不,它不是 ownerdraw 类型 【参考方案1】:

您可以在组合框的 ON_CBN_EDITUPDATE 处理程序中尝试此操作-

DWORD dwSel =  m_mycombo.GetEditSel();
// Only do this if no characters are selected
if( LOWORD( dwSel ) != LOWORD( dwSel ) ) return;

// code you have added handler for

m_mycombo.SetEditSel( LOWORD( dwSel ), LOWORD( dwSel ) );

【讨论】:

以上是关于CComboBox MFC 控件出现问题的主要内容,如果未能解决你的问题,请参考以下文章

将字符串添加到 MFC 组合框

VC/MFC中的CComboBox控件使用详解

ccombobox怎样设置文字垂直居中

CCombobox使用大全

MFC控件之Combo Box

转VS2010/MFC编程入门之二十五(常用控件:组合框控件Combo Box)