c++ - 调用 MoveWindow 后 CComboBox 自动选择文本

标签 c++ winapi mfc ccombobox

我目前遇到一个非常奇怪的问题 CComboBoxCFormView 中使用.

将字符串添加到组合框(使用 WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWN | CBS_SORT | CBS_AUTOHSCROLL 创建)后,我通过 CComboBox::SetCurSel 选择一个条目并通过 MoveWindow 调整组合框的大小在OnSize() CFormView 的处理程序派生类。

一旦我包含对 MoveWindow 的调用,组合框编辑部分的整个文本都被选中。如果我删除对 MoveWindow 的调用,文本不会被选中。这不仅发生在一个组合框上,而且发生在所有使用的组合框上。

此时我不知何故迷路了。非常感谢任何提示!

最佳答案

选择所有文本是组合框获得焦点时的标准 Windows 行为。我猜 MoveWindow 正在重置控件上的焦点。

尝试使用 CComboBox::SetEditSel 删除 MoveWindow 之后的选择。

关于c++ - 调用 MoveWindow 后 CComboBox 自动选择文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/626511/

相关文章:

c++ - 为什么 threading.stack_size() 没有产生想要的效果?

c++ - 如果我们有基*类,如何访问派生模板类的成员函数

c# - 是否可以将 wParam 参数转换为实际的消息字符串?

javascript - IDispatch::Invoke _NewEnum 在 JScript 数组上无法在 IE9 中工作

c++ - 构建具有强制限制的操作系统层?

Visual Studio中的C++运行结构

winapi - IProgressDialog 带有自定义对话框或有关如何执行动画的信息

c++ - 我想 Hook win32API,但它不起作用

c++ - 类的地址分配

c++ - 如何在 MFC 应用程序中使用 gmock