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

nevermorewish 2012-12-12 09:44:56

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属性,又可以响应向左和向右按键?
...全文
229 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nevermorewish 2012-12-13
  • 打赏
  • 举报
回复
引用 1 楼 ccrun 的回复:
在窗体上放一个ApplicationEvent组件,然后在其OnMessage事件中处理: C/C++ code?123456789101112131415void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg, bool &Handled){ if (Msg.messa……
可以使用,学习了
ccrun.com 2012-12-13
  • 打赏
  • 举报
回复
猫哥?什么情况?
CamelFang 2012-12-13
  • 打赏
  • 举报
回复
万能的猫哥啊~~~~
ccrun.com 2012-12-12
  • 打赏
  • 举报
回复
在窗体上放一个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下面。

13,824

社区成员

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

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