gpt4 book ai didi

c++ - 在 PreTranslateMessage() 中监听 MFC 中的键盘事件

转载 作者:搜寻专家 更新时间:2023-10-31 01:36:36 28 4
gpt4 key购买 nike

我尝试使用以下代码在基于对话框的应用程序中监听简单的键盘事件,但按下这些键时没有任何反应。有人可以告诉我哪里出了问题吗?

BOOL PreTranslateMessage(MSG *pMsg)
{

CListeningApp* App = (CListeningApp*) AfxGetApp();
int x=(int)pMsg->wParam;

if(pMsg->message==WM_KEYDOWN)
{
if(x==VK_UP)
MessageBox(NULL,L"UP",L"UP", MB_OK);

if(x==VK_DOWN)
MessageBox(NULL,L"DOWN",L"DOWN", MB_OK);

if(x==VK_RIGHT)
MessageBox(NULL,L"RIGHT",L"RIGHT", MB_OK);

if(x==VK_LEFT)
MessageBox(NULL,L"LEFT",L"LEFT", MB_OK);

if(x==65)
MessageBox(NULL,L"Keyboard Event",L"You Pressed the letter a", MB_OK);


}
return TRUE;

}

最佳答案

您的 PreTranslateMessage 函数是一个独立的函数。它不会仅仅因为它的名字是 PreTranslateMessage 就被自动调用。

该函数必须是您的对话框类的成员。

BOOL CYourDlg::PreTranslateMessage(MSG* pMsg)
{
...
}

CYourDlg您的对话框类。

在你的对话框类 CYourDlg 声明的某处放:

virtual BOOL PreTranslateMessage(MSG* pMsg);

关于c++ - 在 PreTranslateMessage() 中监听 MFC 中的键盘事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35363045/

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