您的位置:首页 > 其它

MFC CEdit 中不能使用ctrl+v进行粘贴解决办法

2015-11-05 13:29 447 查看
原因是因为没有处理Ctrl+V 的消息响应。

解决办法:

重写 PretranslateMessage函数。在PretranslateMessage中截获CEdit响应Ctrl+V 消息,然后截获ctrl+v的消息,重新处理Ctrl+V 消息。

参考http://www.myexception.cn/vc-mfc/743352.html

例如:

IDC_SALES_ORDER_ID_EDIT 是编辑框的ID

BOOL CXxxMgrView::PreTranslateMessage(MSG* pMsg)

{

// TODO: 在此添加专用代码和/或调用基类

if (GetDlgItem(IDC_SALES_ORDER_ID_EDIT)->m_hWnd == pMsg->hwnd )

{

if (pMsg->message == WM_KEYDOWN)

{

if ( (pMsg->wParam == _T('C') || pMsg->wParam == _T('X') || pMsg->wParam == _T('V')) && (::GetKeyState(VK_CONTROL) & 0x8000) )

{

::TranslateMessage(pMsg);

::DispatchMessage(pMsg);

return(TRUE);

}

}

}

return CFormView::PreTranslateMessage(pMsg);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: