【发布时间】:2023-03-18 16:30:01
【问题描述】:
我即将用下拉式组合框替换标准编辑控件。所以基本上那个组合框就像一个编辑控件一样。
到目前为止一切正常,但只有一个显着的区别:
- 当您单击已经包含一些文本但没有焦点的编辑控件时,光标会简单地定位在您单击的位置。
- 但是,当您单击已包含一些文本且没有焦点的组合框时,会选择整个文本。
这描述了当您单击组合框或编辑控件时发生的情况
有没有办法让组合框表现得像一个编辑控件?
【问题讨论】:
-
可能通过子类化和修改
WM_GETDLGCODE返回的内容(如here 所述),尽管我不确定组合。也许您必须在组合中对编辑控件进行子类化。 -
@JonathanPotter 看起来很有希望,谢谢
-
@Jabberwocky 删除 DLGC_HASSETSEL 标志对我来说不适用于 Combobox。它对你有用吗?
-
@RitaHan-MSFT 我还没有尝试过,因为这对我来说现在不是主要问题。你是如何使用
DLGC_HASSETSEL的?您是否继承了组合框或组合框的编辑控件? -
@Jabberwocky 我像这样子类化组合框的编辑控件:
comboEditHdl = FindWindowEx(cmbHdl, NULL, L"Edit", NULL); SetWindowSubclass(comboEditHdl,RemoveHasSetSelSubclassProc, 0, 0);在子类过程中:case WM_GETDLGCODE: return DefSubclassProc(hwnd, uiMsg, wParam, lParam) & ~DLGC_HASSETSEL;
标签: windows winapi combobox user32