读书人

如何捕捉一个按键常按事件呢

发布时间: 2012-03-16 16:34:56 作者: rapoo

怎么捕捉一个按键常按事件呢?
本人刚接触Builder,不熟悉.
不知道用哪种类型的button可以得到长按事件,
比如如果一直点这个button,每阁一段时间就可以得到一个事件.
谢谢!

[解决办法]
使用 OnMouseDown 和 OnMouseUp 两组事件 + 状态变量bool g_bPress;
1、OnMouseDown事件触发在OnClick事件之前
2、使用 if(Button == mbLeft) 判断是否为左键按下。或则干脆不要这句,以提供左右键支持。

void __fastcall TForm1::OnMouseDown(TObject* Sender.....[忘了])
{
g_bPress = true;
}
void __fastcall TForm1::OnMouseUp(...)
{
g_bPress = false;
}

然后在程序需要判断某个按钮状态的时候就可以直接通过g_bPress的值来做判断了。
一般只提供用户一个时间只点一个按钮,如果需要判断多个按钮,就用bool g_bPress[]来搞定。

读书人网 >C++ Builder

热点推荐