请问如何在对话框里如何获得键盘按键消息? 比如说我按下了SHIFT键,怎么才能知道我按下了SHIFT键,就象CAPSLOCK那样按下了键盘的灯会亮 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就使用:if(::GetKeyState(VK_SHIFT)<0) AfxMessageBox("Shift Key is down!"); if(::GetAsyncState(VK_SHIFT)>>8-1).... void CTesttoolDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: Add your message handler code here and/or call default if(::GetKeyState(VK_SHIFT)<0) AfxMessageBox("Shift Key is down!"); CDialog::OnKeyDown(nChar, nRepCnt, nFlags);}我这样用了,可是好象每用啊,对话框弹不出来 void CTesttoolDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: Add your message handler code here and/or call default AfxMessageBox("Shift Key is down!"); CDialog::OnKeyDown(nChar, nRepCnt, nFlags);}连这样都没用,程序都没响应,该怎么办呢? 对话框是不能直接处理OnKeyDown的,在PreTranslateMessage函数里处理CDialog::PreTranslateMessage(MSG* pMsg){ if(pMsg->message==WM_KEYDOWN) { switch(pMsg->wParam) { case VK_LEFT: MessageBox("你按了左方向键"); 楼主的意思是不是想程序一运行时不显示对话框, 当按下键盘上的某个键时才显示对话框?(对话框还没有显示出来. 当然也捕捉不到 KeyDown 和 KeyUp 消息了, 这时要通过注册一个热键来解决....) 哦?小弟的问题已解决,但还有一事不明:为什么对话框不能直接处理KEYDOWN的?而MainFrame 里可以? VS2003中 链接1201错误的求解 一个资源问题 菜鸟提问:C++实现文件读写速度测试迷茫? 求解两个TabCtrl控件按钮标签间的传递方法 谁能详细的讲一下 MFC 中句柄的概念吗? 新手DX问题 堆太小了怎么办呢~在线等~急!!! 请教有关DirectX编程的问题 如何获取显存 ,,是不是用WMI, 具体的是怎样的呢 怎样实现不规则的窗体分割,像网络蚂蚁那样... 什么时候用到CAsyncSocket 把 24位转化为灰度图,显示图像出现倾斜?
if(::GetKeyState(VK_SHIFT)<0)
AfxMessageBox("Shift Key is down!");
....
{
// TODO: Add your message handler code here and/or call default
if(::GetKeyState(VK_SHIFT)<0)
AfxMessageBox("Shift Key is down!");
CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}
我这样用了,可是好象每用啊,对话框弹不出来
{
// TODO: Add your message handler code here and/or call default
AfxMessageBox("Shift Key is down!"); CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}
连这样都没用,程序都没响应,该怎么办呢?
CDialog::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case VK_LEFT:
MessageBox("你按了左方向键");