我在 MFC 中有一个带有下拉属性的组合框。
当我打开一个包含此组合框的对话框时,该组合框中的文本会突出显示。当我单击它时,就在此组合框的编辑字段中的最后一个字符旁边,假设我插入了一个字符 C,它写在末尾,但光标移动到开头。
这只会发生一次,如果我再次将光标移动到结束并开始写作,一切都很好。
当焦点丢失时,再次编辑它会导致上述问题。
同样在代码中,对此控件没有任何特殊处理。
我不明白,为什么会这样?
任何建议或建议都会有所帮助。
谢谢
我在 MFC 中有一个带有下拉属性的组合框。
当我打开一个包含此组合框的对话框时,该组合框中的文本会突出显示。当我单击它时,就在此组合框的编辑字段中的最后一个字符旁边,假设我插入了一个字符 C,它写在末尾,但光标移动到开头。
这只会发生一次,如果我再次将光标移动到结束并开始写作,一切都很好。
当焦点丢失时,再次编辑它会导致上述问题。
同样在代码中,对此控件没有任何特殊处理。
我不明白,为什么会这样?
任何建议或建议都会有所帮助。
谢谢
您可以在组合框的 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 ) );
}