gpt4 book ai didi

windows - 让我的 MFC 对话框在其控件之前接收击键事件(MFC/Win32 相当于 WinForms "KeyPreview")

转载 作者:可可西里 更新时间:2023-11-01 11:15:07 27 4
gpt4 key购买 nike

我有一个包含十几个按钮、单选按钮和只读编辑控件的 MFC 对话框。

我想知道用户何时在该对话框中按下 Ctrl+V,而不管哪个控件具有焦点。

如果这是 C#,我可以设置 KeyPreview 属性,我的表单将在各个控件之前接收所有击键 - 但我如何在 MFC 对话框中执行此操作?

最佳答案

JTeagle 是对的。您应该覆盖 PreTranslateMessage()

// Example
BOOL CDlgFoo::PreTranslateMessage( MSG* pMsg )
{
// Add your specialized code here and/or call the base class
if ( pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN )
{
int idCtrl= this->GetFocus()->GetDlgCtrlID();
if ( idCtrl == IDC_MY_EDIT ) {
// do something <--------------------
return TRUE; // eat the message
}
}

return CDialog::PreTranslateMessage( pMsg );
}

关于windows - 让我的 MFC 对话框在其控件之前接收击键事件(MFC/Win32 相当于 WinForms "KeyPreview"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1372202/

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