
WN_KEYDOWN下:
switch(wParam)
{
if(wParam==(0x0d&VK_CONTROL))
{} //按下ctrl+Enter
}
在你的窗口中添加相应消息。可以重写PRETRANSLATEMESSAGE函数 这个是一个虚函数。
所有的消息都会经过这个函数的,这也是MFC的消息汞,如果你想在哪个窗体(意思就是那个类)中要获取某个消息的话,你就改写这个函数,截获你需要的消息,对于你不关心的消息调用父类函数送到别处去。
思路完全错了 打开我的电脑有特定的代码 单单是SendMessage PostWindow就太简单了 FindWindow也不可能找到没有打开的我的电脑的句柄 建议你从基础学起 先试试钩子 你的代码看上去就跟扯淡似的 模拟鼠标 键盘消息也有特定的函数 mouse_event()和keybd_event 等 用法你自己找
用SetWindowsHookEx下全局键盘钩子
类型用WH_KEYBOARD_LL
记得钩子处理函数要放在DLL里面,不然不能全局
全局钩子对于在各种程序中的按键几乎都能响应
在vista或win7的用户账户控制(UAC)开启的情况下可能需要管理员身份运行才能实现“全局”
ie等一些多进程软件中的子进程可能处在低完整性级别,这种时候钩子我记得是进不去
另外线程必须要有消息处理循环否则你会发现键盘动不了
调试的时候出现这种情况可以使用鼠标把进程结束。
在含有 KeyEventArgs类型参数的的方法里调用该参数的实例就可以知道是哪些键值
比如一个文本框的键盘按下的事件
private void txt_KeyDown(object sender, KeyEventArgs e)
{
if (KeysEnter == eKeyCode)
{
//keys表示所有键盘按键的集合
}
}
以上就是关于VC捕捉键盘组合键,各位帮忙全部的内容,包括:VC捕捉键盘组合键,各位帮忙、VC 对话框 捕捉键盘按键消息、VC++/MFC 后台模拟按键等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)