捕获 Windows 和控件中的“回车”键






4.33/5 (8投票s)
2000年1月13日

78896
如何处理 WM_GETDLGCODE 消息以捕获特殊按键。
为了捕获“Enter”键以及其他特殊键,在一个 CListCtrl
(或者任何控件)中,有必要派生你自己的类并添加一个 WM_GETDLGCODE
消息的处理程序。为了允许所有特殊键都被控件处理,添加以下代码:
UINT SMUPPGrid::OnGetDlgCode()
{
UINT result = CListCtrl::OnGetDlgCode();
result = result | DLGC_WANTALLKEYS;
return result;
}
其他选项包括(来自 MSDEV 文档):
DLGC_WANTALLKEYS
:所有键盘输入。DLGC_WANTARROWS
:箭头键。DLGC_WANTCHARS
:WM_CHAR 消息。DLGC_WANTMESSAGE
:所有键盘输入。应用程序将此消息传递给控件。DLGC_WANTTAB
:TAB 键。DLGC_BUTTON
:按钮(通用)。DLGC_DEFPUSHBUTTON
:默认按钮。DLGC_HASSETSEL
:EM_SETSEL 消息。DLGC_UNDEFPUSHBUTTON
:没有默认按钮处理。(应用程序可以使用此标志与DLGC_BUTTON
一起指示它处理按钮输入,但依赖于系统进行默认按钮处理。)DLGC_RADIOBUTTON
:单选按钮。DLGC_STATIC
:静态控件。
这是一个相对简单的过程,但它并不是那么直观或文档完善。