组合键消息

usecf 2010-11-26 02:00:55
各位大侠
你们好,请问在bcb中如何截获组合键的消息呢 如shift+8
...全文
95 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
usecf 2010-11-29
  • 打赏
  • 举报
回复
妖哥
您刚才说的OnKeyPress在那呢
bcb中有那个消息吗?或者有类似的什么消息没?
谢谢!
usecf 2010-11-29
  • 打赏
  • 举报
回复
谢谢妖哥
我试下
ccrun.com 2010-11-29
  • 打赏
  • 举报
回复
因为是在OnKeyDown事件中作的截获,你可以考虑用OnKeyPress事件.
usecf 2010-11-29
  • 打赏
  • 举报
回复
谢谢妖哥指导
我还想请教您一个问题
我间断性的按键盘的星号键,结果是输不出来了。
可当我一直按住星号键不放的话,照样可以输出,不知道什么原因
谢谢!
ccrun.com 2010-11-26
  • 打赏
  • 举报
回复
如果你只想截获,不想让其输入,需要这样:
if (Key == 0x38 && Shift.Contains(ssShift))
Key = 0;
usecf 2010-11-26
  • 打赏
  • 举报
回复
妖哥,那主键盘上的星号是不是就用你刚说的那样吗
if (Key == 0x38 && Shift.Contains(ssShift))
ShowMessage("截获到Shift + 8的按键");

可当我按下shift+8的时候,(主键盘)edit控件也弹该提示框,数字8照样也能输入。
请问妖哥,如何才能不让输入呢
谢谢
usecf 2010-11-26
  • 打赏
  • 举报
回复
你好。我想在动态生成的一组edit上进行合法性验证
不想在上面输入星号等特殊字符。
我也是按照你那样设置的,可是好像不起作用
ccrun.com 2010-11-26
  • 打赏
  • 举报
回复
小键盘上的 * 键:
(Key == VK_MULTIPLY)
ccrun.com 2010-11-26
  • 打赏
  • 举报
回复
(Key == '*')
usecf 2010-11-26
  • 打赏
  • 举报
回复
谢谢。马上给分。请问妖哥,您知道×(星号的虚键是什么吗?)怎么获得星号的虚键呢
ccrun.com 2010-11-26
  • 打赏
  • 举报
回复
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if (Key == 0x38 && Shift.Contains(ssShift))
ShowMessage("截获到Shift + 8的按键");
}

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧