必威体育Betway必威体育官网
当前位置:首页 > IT技术

PreTranslateMessage()函数捕获键盘按键消息

时间:2019-10-02 19:13:14来源:IT技术作者:seo实验室小编阅读:76次「手机版」
 

translatemessage

01. PreTranslatemessage函数,常用于屏蔽MFC对话框中默认的Enter和ESC消息

函数原型:BOOL PreTranslateMessage(MSG* pMsg)

用法举例:

BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)

{

   if(pMsg->message == WM_KEYDOWN){

   if(pMsg->wParam == VK_ESCAPE){

   return TRUE;

   }

   if(pMsg->wParam == VK_RETURN){

   return TRUE; // 对话框内部控件不可以接收到回车消息!!

   }

   }

   return CDialog::PreTranslateMessage(pMsg);

}

02.响应系统按键

if(pMsg->message==WM_SYSKEYDOWN)

{

  if(pMsg->wParam==VK_MENU)

   MessageBox("alt");

}

if((pMsg->wParam==VK_F9) && (getasynckeystate(VK_MENU)<0))

{  

  MessageBox(_T("同时按下了Alt键和F9键"));  

}

GetAsyncKeyState()

=========================

功能:确定用户当前是否按下了键盘上的一个键

原型:SHORT GetAsyncKeyState(int vKey);

参数:nVirtKey指出要检查键的虚键代码。结果的高位指出该键当前是否被按下(是为1,否为0)。

常用键的VK值:

VK_SHIFT Shift键

VK_LSHIFT 左Shift键

VK_RSHIFT 右Shift键

VK_CONTROL Ctrl键

VK_LCONTROL 左Ctrl键

VK_RCONTROL 右Ctril键

VK_MENU Alt键

VK_LMENU 左Alt键

VK_RMENU 右Alt键

VK_LBUTTON 鼠标左键

VK_RBUTTON 鼠标右键

另一个函数GetKeyState与GetAsyncKeyState函数不同。GetAsyncKeyState在按下某键的同时调用,判断正在按下某键。

GetKeyState则在按过某键之后再调用,它返回最近的键盘消息从线程的队列中移出时的键盘状态,判断刚按过了某键。

与Registerhotkey()相比,GetAsyncKeyState()的优点在于可以监控鼠标按键,缺点是需要使用定时器。

相关阅读

在Excel中indirect函数的使用方法

indirect函数的含义:引用,并显示其内容,indirect函数的语法格式=INDIRECT(ref_text,[a1])。下面小编教你在Excel中indirect函数的使

机器学习-代价函数

注:代价函数(有的地方也叫损失函数,Loss Function)在机器学习中的每一种算法中都很重要,因为训练模型的过程就是优化代价函数的过程,代

Bitblt函数的dwRop详解

BITBLT的函数声明如下BOOL BitBlt( HDC hdcDest, // handle to destination DC int nXDest, // x-coord of destination upp

【leetcode】78.子集(self的使用以及Python/函数的嵌套

给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2

sql 查询字符坐标位置 之PATINDEX()函数详解

前言: 在sql语句查询中,有时候,我们可以通过like模糊查询来判断是否存在某个数据,但是,当我们要确定某个字符串第一次出现的位置时,lik

分享到:

栏目导航

推荐阅读

热门阅读