XiaoHui.net 笑汇程序员论坛首页
工作并快乐着,职业并休闲着
寻梦的岁月从不言辛苦几许,
不问收获几多……
» 游客:  申请新用户 | 登录 | 会员 | 统计 | 帮助 » XiaoHui.Net 笑汇程序员论坛 | 纯文字版 | 全站索引 | XiaoHui.com


[MFC Class] 关于PostMessage或者SendMessage发送ctrl组合按键的问题

RSS 订阅当前论坛  

上一主题 下一主题
     

标题: [MFC Class] 关于PostMessage或者SendMessage发送ctrl组合按键的问题  
 
sdzbhb
小水手
Rank: 1



UID 21567
精华 0
积分 1
帖子 1
阅读权限 10
注册 2006-5-8
状态 离线
关于PostMessage或者SendMessage发送ctrl组合按键的问题

我需要向一个程序发送ctrl+v的按键消息。用PostMessage或者SendMessage都发现ctrl失效,不知问题出在哪里。现在说明如下:
我以windows的计算器(calc)为例子,选择科学型的16进制。
我的程序:
          :ostMessage(AppWnd,WM_KEYDOWN,'C',MapVirtualKey('C',0));
         :ostMessage(AppWnd,WM_KEYUP,'C',MapVirtualKey('C',0));
这两句可以正常运行,输入窗口出现C

但是如果组合上ctrl就不行。
         :ostMessage(AppWnd,WM_KEYDOWN,VK_CONTROL,MapVirtualKey(VK_CONTROL,0));
        ::PostMessage(AppWnd,WM_KEYDOWN,'C',MapVirtualKey('C',0));
        ::PostMessage(AppWnd,WM_KEYUP,'C',MapVirtualKey('C',0));
        ::PostMessage(AppWnd,WM_KEYUP,VK_CONTROL,MapVirtualKey(VK_CONTROL,0));
这四句运行不正常,ctrl不起作用。也就是说,CTRL C并没有启到copy的作用,或者说,这四句话没有实现向计算器发送ctrl + c的按键消息

我不知道问题出在哪里,所有的按键,比如数字、字母,甚至F1-F12都可以成功发送唯独组合了ctrl或者shift还有alt就不行。

特别提醒:
1. 我知道keybd_event是可以的,我也用keybd_event实现了ctrl + c 的组合功能。在这里,我希望得到不用keybd_event的解决方法。
2. ctrl+c只是一个组合键的例子,所以类似向程序发送剪贴板消息命令的方法就不用了,我需要的是组合按键消息

希望高手们提出自己的思路,万分感谢!!
2006-5-8 15:17#1
查看资料  Blog  发短消息  顶部
 
麦斯
版主
Rank: 7Rank: 7Rank: 7



UID 1285
精华 0
积分 1678
帖子 1678
阅读权限 100
注册 2002-4-24
状态 离线
发WM_CHAR
2006-5-8 19:31#2
查看资料  Blog  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题  


 


所有时间为 GMT+8, 现在时间是 2008-12-2 15:25 Powered by Discuz! 4.1.0 清除 Cookies - XiaoHui.Net 笑汇程序员论坛 - Archiver