在PretranslateMessage里面判断,如果单独判断是否按下了C键问题,但同时按下ALT+C时为可没有进入?
if(pMsg-> message == WM_KEYDOWN)
{
if (pMsg-> wParam == 'C' )
{ //同时按下却执行不到这里。
if(::GetKeyState(VK_MENU)&0x8000)
AfxMessageBox( "ALT+C");
}
}
那判断按下了ALT+C的正确方式是什么?
if(pMsg-> message == WM_KEYDOWN)
{
if (pMsg-> wParam == 'C' )
{ //同时按下却执行不到这里。
if(::GetKeyState(VK_MENU)&0x8000)
AfxMessageBox( "ALT+C");
}
}
那判断按下了ALT+C的正确方式是什么?
解决方案 »
- vc6.0如何通过Ado操作sqllite
- 一个星期内第二次失眠
- 求助 msg格式文件
- 奇怪的问题(非常郁闷)
- 关于OpenGL与VC的问题。
- 请教一个关于数据类型转换的为题!CString -> LPCWSTR OR LPCTSTR,谢谢!
- 高分求例程:提示按钮怎么做?原理是啥?(UP有分)
- ntadmin接分,谢谢帮助
- 请教gboy(hello)???
- 紧急求助,急需 Desktop Application with Microsoft Visual C++ 6.0 MCSD Training Kit eBook 的配套源码。拜托啦!那位老兄能发给我,或在哪儿能下载到。急急急...
- RORMVIEW 如何响应CMainFrame 里控件的消息?
- 模拟抛硬币
{
if(pMsg-> message == WM_KEYDOWN)
{
if(pMsg->wParam == 'C' || pMsg->wParam == 'c')
{
//用 GetKeyState 来查看按键是否按下
if((GetKeyState(VK_ALT))
//..............
}
}
return CMyCtrl::PreTranslateMessage(pMsg);
}
另外 if (pMsg-> wParam == 'C' ) 这句,不应该等于‘C’,应该是c的键码
BOOL CXXDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(HIBYTE(::GetKeyState(VK_MENU)) && WM_SYSKEYDOWN == pMsg->message && _T('C') == pMsg->wParam)
{
AfxMessageBox("OK");
} return CDialog::PreTranslateMessage(pMsg);
}