【问题标题】:Keyboard Tabbing Stops working on Windows GUI键盘选项卡停止在 Windows GUI 上工作
【发布时间】:2010-01-14 23:24:33
【问题描述】:

我有一个内置于 Microsoft Visual C++ 中的 windows gui,当用户执行一组特定操作时,从小部件移动到小部件的键盘选项卡停止工作。

简单地说,有两个带有添加和删除按钮的列表框。选择列表框#1 中的一行并按下添加按钮会从列表框#1 中删除对象并将其移动到列表框#2。我看到的问题是键盘选项卡功能消失了,因为选项卡焦点位于添加按钮上,当添加回调完成时该按钮变得不敏感(因为当前没有选择列表框 #1 中的任何行)。

我希望能够将选项卡焦点重新设置为列表框 #1(但不是特定行的选择)。有什么方法可以做到这一点?我相信我是作为标准模式对话框运行的。

【问题讨论】:

  • 这种风格的界面对我来说总是很笨拙。您是否考虑过使用 LVS_EX_CHECKBOXES 的单个列表视图,以便您只检查项目的开/关? neowin.net/forum/index.php?showtopic=819824
  • 同意...这可能是后来的“增强”。 (我继承了这个接口)

标签: c++ windows user-interface dialog focus


【解决方案1】:

如果我理解正确,您只想将焦点设置回列表框之一。由于这是在对话框中,而不是调用 SetFocusThe Old New Thing 建议您向列表框的 hWnd 发送消息来执行此操作:

void SetDialogFocus(HWND hdlg, HWND hwndControl)
{
    SendMessage(hdlg, WM_NEXTDLGCTL, (WPARAM)hwndControl, TRUE);
}

【讨论】:

  • 是的,看起来它会起作用......让我试一试。旧新事物的解释看起来很可靠。
猜你喜欢
  • 2018-01-14
  • 2020-12-25
  • 2010-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多