PreTranslateMessage()函数捕获键盘按键消息
来源:互联网 发布:java冒泡排序法 编辑:程序博客网 时间:2024/05/01 19:12
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()的优点在于可以监控鼠标按键,缺点是需要使用定时器。
- PreTranslateMessage()函数捕获键盘按键消息
- PreTranslateMessage()函数截获鼠标键盘消息
- PreTranslateMessage 处理键盘消息
- PreTranslateMessage处理键盘消息
- 捕获Esc按键消息
- 捕获按键消息
- wxPython 捕获按键消息
- 键盘按键代码捕获演示
- 键盘按键代码捕获演示
- 捕获键盘按键的示例
- bioskey 捕获键盘按键值
- VC捕获键盘消息
- PreTranslateMessage无法捕获WM_VSCROLL 滑动条添加消息响应
- wxPython如何捕获键盘消息
- 键盘按键消息的获取
- VC处理键盘按键消息
- 键盘(键盘基础,按键消息)
- 利用PreTranslateMessage函数屏蔽按键 回车 ESC等
- [WPF] WPF Puzzle
- 对于重装系统后,迅雷弹出“init task manager failed”错误解决方法
- QTextCursor的一些用法
- js获得浏览器类型
- 解决manifest.mf的line too long问题
- PreTranslateMessage()函数捕获键盘按键消息
- Solaris下守护进程编码 2010.9.8
- 遭遇丢失信号--WARNING:Xst:2677 - Node of sequential type is unconnected in block .
- 2010年8月学习笔记
- Techniques 中文翻译(Google Protocol Buffers中文教程)
- JSF:通过查询为SelectItem添加列表项
- VC中结构体内存分配问题透析
- 搞笑故事一则——食品安全
- loader 的content