我有一个用Microsoft Visual C ++构建的windows gui,当用户执行某组操作时,键盘标签从窗口小部件移动到窗口小部件就会停止工作。
简单地说,有两个带有添加和删除按钮的列表框。在列表框#1中选择一行并按下添加按钮会从列表框#1中删除该对象并将其移动到列表框#2。我看到的问题是键盘标签功能消失了,因为标签焦点在添加按钮上,当添加回调完成时变得不敏感(因为当前没有选择列表框#1中的行)。
我希望能够将标签焦点重新设置为列表框#1(但不能选择特定行)。有什么办法吗?我相信我是作为标准模态对话框运行的。
答案 0 :(得分:2)
如果我理解正确,您只想将焦点设置回其中一个列表框。由于这是在对话框中,而不是调用SetFocus
,The Old New Thing建议您向列表框的hWnd发送消息来执行此操作:
void SetDialogFocus(HWND hdlg, HWND hwndControl)
{
SendMessage(hdlg, WM_NEXTDLGCTL, (WPARAM)hwndControl, TRUE);
}