读书人

怎么让按钮响应 向左和向右按键

发布时间: 2012-12-29 10:28:09 作者: rapoo

如何让按钮响应 向左和向右按键


void __fastcall TForm1::Button1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
{
if(Key == VK_LEFT)
{
OutputDebugString("left");
}
else if(Key == VK_RIGHT)
{
OutputDebugString("right");
}
}

在Button1KeyDown 消息事件中加入如上代码是没有效果的。
想过使用TGraphicControl 继承下来的空间TImage可以响应向左和向右按键,有效果,
但是没有TabOrder属性,也不能获得焦点。
请问控件如何又可以获得焦点有TabOrder属性,又可以响应向左和向右按键?
[解决办法]
在窗体上放一个ApplicationEvent组件,然后在其OnMessage事件中处理:
void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg,
bool &Handled)
{
if (Msg.message == WM_KEYDOWN && Msg.hwnd == Button1->Handle)
{
if (Msg.wParam == VK_LEFT)
{
OutputDebugString("left");
}
else if (Msg.wParam == VK_RIGHT)
{
OutputDebugString("right");
}
}
}


友情提示:ApplicationEvent组件在Additional下面。

读书人网 >C++ Builder

热点推荐