怎样给form1自定义mouse doubleclick消息响应!!!!!!!!

jumphigh 2000-08-26 10:04:00
因为我在程序中定义了如下一个消息,所有原来form的鼠标事件都给屏蔽了
结果无法使用form的FormDblClick事件
我想自定义一个事件,谁来帮帮我

procedure Tbar.WMNChitTest(var Msg: TWMNChitTest);
begin
inherited;

if msg.Result=htclient then msg.Result:=htcaption;
end;
...全文
220 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jumphigh 2000-08-28
  • 打赏
  • 举报
回复
我已经加分了
大家快来帮我想想
jumphigh 2000-08-27
  • 打赏
  • 举报
回复
话是这么说
具体怎么做
old_peasant 2000-08-27
  • 打赏
  • 举报
回复
你的消息返回结果屏蔽了所有的控件鼠标消息,解决办法:

1. 通过消息得到鼠标位置坐标
2. 用Form的ControlAtPos函数检查一下鼠标是否在某个Control上面
3. 如果在Control上面,消息返回 htClient, 否则(Form背景)返回htCaption
jumphigh 2000-08-26
  • 打赏
  • 举报
回复
有人说将
inherited;
if msg.Result=htclient then msg.Result:=htcaption;
两句的位置换一下

可这样double click的功能实现了
移动窗口的功能就没有了

jumphigh 2000-08-26
  • 打赏
  • 举报
回复
就算解决不了
谁能就windows的消息机制和我讨论一下吗
jumphigh 2000-08-26
  • 打赏
  • 举报
回复

procedure TForm1.WndProc(var Message: TMessage);
var
begin
inherited;
case message.Msg of
WM_LBUTTONDBLCLK:
begin
od1.Execute;
exit;
end;
WM_NCHITTEST:
begin
if (message.Result=htclient) then message.Result:=htcaption;
Exit;
end;
end;

现在我用重载WndProc试着实现可是
还是老问题
WM_LBUTTONDBLCLK 给屏蔽了
难道真的没人能解救我的这个问题吗
jumphigh 2000-08-26
  • 打赏
  • 举报
回复
who 能帮我呀

4,164

社区成员

发帖
与我相关
我的任务
社区描述
Windows专区 一般软件使用
社区管理员
  • 一般软件使用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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