gpt4 book ai didi

c++ - 无法为子类编辑框控件捕获 VK_RETURN 键

转载 作者:搜寻专家 更新时间:2023-10-31 00:23:49 25 4
gpt4 key购买 nike

我将编辑框控件子类化为

lpfnOldWndProc = (FARPROC)SetWindowLong(hEdit,GWL_WNDPROC, (DWORD)SubClassFunc);




LRESULT FAR PASCAL SubClassFunc( HWND hWnd,
UINT Message,
WPARAM wParam,
LPARAM lParam)
{

switch(Message)
{

case WM_CHAR:
//Process this message to avoid message beeps.
if ((wParam == VK_RETURN) || (wParam == VK_TAB))
{
//Do Something
return 0;
}

break;
case WM_KEYDOWN:
if ((wParam == VK_RETURN) || (wParam == VK_TAB)) {
//Do Something
return 0;
}

break ;

default:
break;
}

return CallWindowProc((WNDPROC)lpfnOldWndProc, hWnd, Message, wParam, lParam);

}

现在,当我在编辑框中输入 char 时,会调用这个子类过程。但是当按下回车键时我无法得到它。

是不是上面的过程有问题。

最佳答案

不,系统使用 WM_GETDLGCODE 来确定控件感兴趣的按键。默认情况下,编辑框不处理 Return(对话框过程将其解释为按下默认按钮),因此不需要 VK_RETURNS被发送给它。您需要处理 WM_GETDLGCODE 消息并返回 DLGC_WANTALLKEYS,然后您应该获得 VK_RETURNS。

MS 文档很好地概述了这种子类化场景。

关于c++ - 无法为子类编辑框控件捕获 VK_RETURN 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1284364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com