重载TForm的WindowProc后,控件不能响应鼠标点击消息

chinayu2007 2015-09-20 08:17:05
重载TForm的WindowProc后,继承自TWinControl的控件能响应鼠标消失,但是继承自TGraphicControl的控件不能响应消息。
如TImage控件不能响应鼠标点击。
...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
缘中人 2015-09-21
  • 打赏
  • 举报
回复
TWinControl可以收到,说明不是重载WindowProc的问题了吧
缘中人 2015-09-21
  • 打赏
  • 举报
回复
你可以放一个TApplicationEvents进行截获消息试试
缘中人 2015-09-21
  • 打赏
  • 举报
回复
要这样啊
chinayu2007 2015-09-21
  • 打赏
  • 举报
回复

__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
    this->WindowProc = Proc;
}
//加入这些代码,所有非TWinControl控件才能响应鼠标
void __fastcall TForm1::Proc(TMessage & message)
{
    TPoint pt;
    pt.x = message.LParamLo;
    pt.y = message.LParamHi;

    if(message.Msg == WM_LBUTTONDOWN || message.Msg == WM_LBUTTONUP)
    {
        TControl* control= ControlAtPos(pt, false);
        if(control)
        {
           message.Result = control->Perform(message.Msg, message.WParam, message.LParam);
        }
    }
    this->Dispatch(&message);
}

13,825

社区成员

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

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