首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

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

2012-12-29 
如何让按钮响应向左和向右按键void __fastcall TForm1::Button1KeyDown(TObject *Sender, WORD &Key, TShi

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


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下面。

热点排行