首先在testDlg.h(对话框头文件)中添加成员变量:
HACCEL m_hAccel;//清空编辑框
打开资源视图,然后找到需要添加快捷键按钮所在的对话框,在“ IDD_TEST_DIALOG ” 上右键


根据第三步右键添加资源弹出 “ 添加资源 ” 弹窗,选择Accelerator选项,然后点击“ 新建 ”按钮。

在资源视图中会出现 “ Acclerator ” 文件夹, 第6步,打开 “ Acclerator ” 文件夹,在 “ IDR_ACCELERATOR2 ” 右键选择” 打开 “ 按钮


编辑自己的快捷键。我的为 Ctrl + D 快捷键。

在对话框.cpp 文件的初始化函数中添加:
m_hAccel = ::LoadAcceleratorsA(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR2));//初始化“编辑框”快捷键资源

添加对话框类向导中添加 虚函数 “ PreTranslateMessage(MSG* pMsg) ”


/******************“编辑框”快捷键处理*********************/
if (WM_KEYFIRST <= pMsg->message && pMsg->message <= WM_KEYLAST)
{
HACCEL hAccel = m_hAccel;
if (hAccel && ::TranslateAccelerator(m_hWnd,hAccel,pMsg)){
/*******************按住Ctrl+D快捷键会清空“输出框”中的内容********************/
if(GetDlgItem(IDC_ComOutPut) == GetFocus())
{
GetDlgItem(IDC_ComOutPut)->SetWindowText("");
return TRUE;
}
/*******************按住Ctrl+D快捷键会清空“输入框”中的内容********************/
if(GetDlgItem(IDC_ComInPut) == GetFocus())
{
GetDlgItem(IDC_ComInPut)->SetWindowText("");
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
本文介绍如何在MFC对话框中添加自定义快捷键,例如Ctrl+D用于清空指定控件的内容。首先需要在对话框头文件中声明成员变量,并通过资源视图添加Accelerator资源。接着在对话框的初始化函数中加载快捷键资源,并实现PreTranslateMessage函数进行消息处理。
888

被折叠的 条评论
为什么被折叠?



