如何通过TAB键在窗口中的控件之间导航
How to navigate between controls in a Window by TAB key?
我通过调用CreateWindow
创建了一个窗口,并在上面放置了两个编辑控件。编辑控件具有已启用的WS_TABSTOP
样式。我可以更改它的文本,但通过TAB键在控件之间导航不起作用。
我把这个代码放在我的消息循环中:
MSG msg;
while ( GetMessage( &msg, NULL, 0, 0 ) )
{
if ( !msg.hwnd || !IsDialogMessage( msg.hwnd, &msg ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}
不幸的是,按TAB键导航不起作用,编辑控件也不进行编辑,而按TAB键只会选择第一个控件的文本。有人能帮我吗?
传递给IsDialogMessage的窗口句柄是您想要导航的类似对话框的窗口。您正在传递接收消息的窗口,该窗口可能是编辑控件,而不是顶级窗口。
您有两个基本选择:要么将控件放入实际对话框中(您将使用DialogBox
(或其近亲之一,如DialogBoxEx
)调用该对话框),要么自己处理选项卡。
在后一种情况下,您需要在输入tab
时做出反应,并将焦点设置为另一个控件。顺便说一句,我不记得你是否可以通过WM_NOTIFY
处理这个问题,或者你是否必须对控件进行子类化。
相关文章:
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- 在编译时,C++项目抛出错误 C2228,这是预期的,因为控件在运行时未达到该点
- 如何更改窗体上所有控件的标题?[C++生成器]
- 双击更改 mfc 中列表控件中的行的颜色
- 派生的 wxPanel 控件如何访问其中包含 wxDialog 中的数据?
- 如何从代码本身向 wxwidgets 中的文本控件插入字符?
- 如何在MFC中的静态文本控件上插入图标?
- 我的主窗口在创建时或单击更新区域时是否会收到编辑控件?
- 如何在Qt C++中向自定义控件添加属性?
- C/C++ 检测双击 TVItem 的常用控件
- 从C++标头中导入常量而不是硬编码它们:扩展 .net 控件?
- 控件不会在选择函数旁边移动
- C++ 如何将用户控件添加到窗体,以便我可以在面板之间转换
- 在 MFC 对话框和自己的线程上的 OpenGL 控件之间传递消息
- 如何通过TAB键在窗口中的控件之间导航
- 如何设置在运行时创建的Windows控件之间移动的顺序
- 是否可以在CEdit控件的纯数字和字母数字输入模式之间切换
- 在所有Windows上使用DoDataExchange/Force Update控件在一个成员变量和多个控件之间共享数据
- 在不使用tab键的情况下在Windows Mobile中的对话框控件之间移动