送分:SendMessage为什么不能传送"Alt"按键消息?

godtorch 2003-12-12 10:23:22
我用SendMessage(hd,WM_KEYDOWN,18,0)跟PostMessage都试过,当传送其他按键(比如a,b,c...)都没问题单单这个键没反应,请教高手该怎么写?谢谢!
...全文
78 14 打赏 收藏 举报
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yjy1001 2003-12-12
如果是‘激活’热键
那么应该 发送 WM_HOTKEY消息 然后消息里 可以携带 热键的组合键码,单独发送alt,窗体接受到也只是能激活菜单而已
  • 打赏
  • 举报
回复
jbz 2003-12-12
还是不好使.
  • 打赏
  • 举报
回复
godtorch 2003-12-12
谢谢,上面的程序确实可以打开一个窗口的菜单了,但是对哦真正要控制的窗口还是无效!!!那个窗口设置了大量的快捷键“Alt+1"等等。
  • 打赏
  • 举报
回复
ccrun.com 2003-12-12
我猜你也是要发送菜单。

SendMessage(hWin , WM_SYSCHAR, VK_MENU, 0);
SendMessage(hWin , WM_SYSCHAR, 'f', 0);

// 发送alt + f
  • 打赏
  • 举报
回复
godtorch 2003-12-12
晕了,还是不行。我用楼上两位的方法向一个有菜单的窗口送消息本来如果有效的话菜单应该会被按下,(已经先把窗口设为最前面)。 我实际需要的功能是向一个窗口送一个“Alt+1”,“Alt+2”...的消息。我下了个按键精灵却可以做得出来!!
  • 打赏
  • 举报
回复
yangguo_god 2003-12-12
SendMessage(hWin, WM_HOTKEY, IDHOT_SNAPWINDOW, MOD_ALT);
  • 打赏
  • 举报
回复
godtorch 2003-12-12
呵呵,还是不行!
  • 打赏
  • 举报
回复
ccrun.com 2003-12-12
那就试试这个:
SendMessage(hWin , WM_SYSCHAR, VK_MENU, 0);
  • 打赏
  • 举报
回复
godtorch 2003-12-12
谢谢 ccrun(老妖),不过我不想用这个。因为用键盘模拟的话要把被控制的窗口一直放在顶层,很不方便.
  • 打赏
  • 举报
回复
ccrun.com 2003-12-12
不过在调用上述代码以前,最好先将目标窗口调到最前面来
::BringWindowToTop(hWin);
或者:
SetForegroundWindow(hWin);
  • 打赏
  • 举报
回复
ccrun.com 2003-12-12
用keybd_event

keybd_event(VK_MENU, 0, 0, 0);
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
  • 打赏
  • 举报
回复
godtorch 2003-12-12
在线等待...
  • 打赏
  • 举报
回复
godtorch 2003-12-12
再等待...
  • 打赏
  • 举报
回复
godtorch 2003-12-12
请问 yjy1001(蓝鲸--优秀得郁闷的鱼) ,如何设置“热键的组合键码”?比如"Alt+1",应该怎么写呢?谢谢。
  • 打赏
  • 举报
回复
相关推荐
发帖
C++ Builder
加入

1.3w+

社区成员

C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
申请成为版主
帖子事件
创建了帖子
2003-12-12 10:23
社区公告
暂无公告