提问人:CristhianDev 提问时间:11/9/2023 最后编辑:CristhianDev 更新时间:11/9/2023 访问量:51
为什么 Tab 键不会将焦点转移到ES_MULTILINE样式文本框中的下一个控件?[复制]
Why doesn't the Tab key shift focus to the next control in an ES_MULTILINE styled text box? [duplicate]
问:
我创建了一个具有样式的多行编辑控件,我意识到当我按下该键时,它不会将焦点更改为下一个控件。ES_MULTILINE
Tab
我已经配置了IsDialogMessage和WS_TABSTOP,这是代码:
if (!IsDialogMessageA(hWnd, &msg))
{
TranslateMessage(&msg);
DispatchMessageA(&msg);
}
HWND hWndEdit1 = CreateWindowExA(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 14, 14, 200, 21, hWnd, NULL, NULL, NULL);
HWND hWndEdit2 = CreateWindowExA(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_MULTILINE | ES_WANTRETURN, 14, 44, 200, 42, hWnd, NULL, NULL, NULL);
HWND hWndEdit3 = CreateWindowExA(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 14, 95, 200, 21, hWnd, NULL, NULL, NULL);
答:
2赞
Remy Lebeau
11/9/2023
#1
Tab 是多行“编辑”控件中的有效文本字符。它不应该将焦点更改为下一个 UI 控件。如果希望 Tab 执行此操作,则必须对 Edit 控件进行子类化以处理WM_GETDLGCODE
(默认情况下包括启用时),甚至直接处理按压。DLGC_WANTALLKEYS
ES_MULTILINE
Tab
上一个:子进程不会修改父进程中的统计信息
评论