如何聚焦或选择项目?

问题描述 投票:0回答:2

在 WinAPI 中选择按钮以使按钮或项目具有虚线所示的输入焦点的正确方法是什么?如果我只是设置焦点,则不会选择它。一个例子:我通过

CB_SETSEL
在组合框中选择一个项目索引;如何选择完整的项目(虚线,蓝色背景)?

c++ c winapi
2个回答
1
投票

在对话框中,您应该使用

DM_SETDEFID
消息将按钮设置为默认按钮。只需调用
SetFocus
即可将焦点集中到按钮(“虚线”),但不会使其成为 default 按钮(通过按 Return 键操作的按钮)。例如,

SendMessage(hwndDlg, DM_SETDEFID, IDC_BUTTON, 0);

对于其他类型的控件,

SetFocus
就是您所需要的,例如:

SetFocus(GetDlgItem(hwndDlg, IDC_COMBO));

0
投票

“蓝色背景”表示单元格或列表项已被选中。 “虚线”表示单元格或列表项具有焦点。这是两个不同的事情,需要两个不同的方法调用或消息。在您使用的样式中,您还必须发送 CB_SETCURSEL 消息。

http://www.jasinskionline.com/windowsapi/ref/c/cb_setcursel.html

© www.soinside.com 2019 - 2024. All rights reserved.