流沙团
vc++基础班[10]---对话框响应鼠标及键盘消息
2017-9-11 流沙团


vc++基础班[10]---对话框响应鼠标及键盘消息

------------------------------------------ Begin ----------------------------------------

①、各种各样的常用鼠标消息:

WM_MOUSEMOVE   鼠标移动位置

WM_LBUTTONDOWN  鼠标左键按下

WM_LBUTTONUP   鼠标左键弹起

WM_LBUTTONDBLCLK 鼠标左键双击

WM_RBUTTONDOWN  鼠标右键按下

WM_RBUTTONUP   鼠标右键弹起

WM_RBUTTONDBLCLK 鼠标右键双击

WM_MBUTTONDOWN 鼠标中键按下

WM_MBUTTONUP   鼠标中键弹起

WM_MBUTTONDBLCLK 鼠标中键双击

WM_MOUSEWHEEL   鼠标滚轮滚动



②、响应鼠标消息;



③、各种各样的常用键盘消息:

WM_KEYDOWN  键盘按键按下

WM_CHAR    可以打印字符

WM_KEYUP    键盘按键弹起



④、响应键盘消息:

◆ MFC对话框程序需重载 PreTranslateMessage 函数进行按键的处理,添加相关代码如下:

BOOL CMFCTestDlg::PreTranslateMessage(MSG* pMsg)

{

 // TODO: Add your specialized code here and/or call the base class

 if (pMsg->message == WM_KEYDOWN){

  switch(pMsg->wParam)

  {

  case VK_UP:

   MessageBox(_T("您按下了向上键!"));

   break;

  case VK_DOWN:

  default:break;

  }

 }



 return CDialog::PreTranslateMessage(pMsg);

}

◆ 虚拟键盘码见MSDN:Virtual-Key Codes

◆ WM_KEYDOWN 消息发送的 pMsg->wParam 字符都是大写的,如果要判断按下的字符是大写还是小写,可以在 WM_CHAR 消息中使用 ASCII 码对 pMsg->wParam 进行判断,

或者借助函数:IsCharLower、IsCharUpper 来判断!

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容