在mdi工程中,我把s字符设为某个功能的加速键,但是,我发现这样用户再点击s时就不会响应view类中的OnChar函数了,如何暂时屏蔽掉加速键,而象一般的键一样响应OnChar函数呢?谢谢!
改写View的PreTranslateMessage虚函数
BOOL CYourView::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN)
{
if(pMsg->wParam == S)
{
TranslateMessage(pMsg);
DispatchMessage(pMsg);
}
}
return CView::PreTranslateMessage(pMsg);
}
我说一句,楼主别介意,呵呵:我认为这是一种非常不好的处理方法,如果不需要输入字符,如CFormView中没有编辑框控件,则可以用单个字符作为快捷键,否则只会给用户带来麻烦,因为系统并不知道什么时候需要输入字符,什么时候需要快捷键,还是得用户自己来设置,还不如Ctrl+S来得快,呵呵
最好不要用这个S,否则用户就会很烦,这个S为什么有时候能用有时候不能用