我想用一个label或paintbox控件,输出用户的键盘字符。
比如用户敲某个键,label的caption就显示那个字母。我先试了Hook,可用chr(hook的wparam) 出来都是大写字母。
还要监控capslock和shift,麻烦又试了写procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN;
然后输出mssage.charcode
可根本没反应啊。怎么让这个东西起作用啊?
比如用户敲某个键,label的caption就显示那个字母。我先试了Hook,可用chr(hook的wparam) 出来都是大写字母。
还要监控capslock和shift,麻烦又试了写procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN;
然后输出mssage.charcode
可根本没反应啊。怎么让这个东西起作用啊?
似乎是焦点的问题,但使用form.setfocus 却不行。
如何把焦点设置到label或paintbox上?
目前是排除法,即焦点不在button等有焦点的控件上,似乎比较笨。
还有菜单等无焦点控件。应该是用户点击了其它任何控件,焦点就丧失,可是怎么实现啊?
难道还要hook鼠标,检测点击了超出本控件的范围?