激活CDialogBar中CComboBox的拷贝(Ctrl+C)和粘贴(Ctrl+V)快捷键

时间:2022-07-15 16:54:22

我们在CFromView和DiaglogBar中放置的CComboBox、CEdit不支持拷贝粘贴快捷键,我们可以通过重载BOOL PreTranslateMessage(MSG* pMsg),并添加如下代码就可以直接激活控件自己的拷贝粘贴功能。示例中CMyDialogBar是从CDialogBar派生的子类。

BOOL CMyDialogBar::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN)
{
int nKey = pMsg->wParam;
if ((nKey == 'C' || nKey == 'X'
|| nKey == 'V') &&
(::GetKeyState(VK_CONTROL) & 0x8000))
{
::TranslateMessage(pMsg);
::DispatchMessage(pMsg);
return(TRUE);
}
}
return CDialogBar::PreTranslateMessage(pMsg);
}