消息问题

边缘998 2009-06-17 11:14:24
我想捕捉窗体标题点击消息,我找了些资料说是WM_NCLBUTTONDOWN,我试了下觉得是可以,但最小化,最大化,关闭按钮点了,也交由这个消息处理了,我只是想点击CAPTION处,非这几个按钮,还有其它触发消息么?如果没有,哪么我截到这个消息,如果不想处理,怎么交由主程序去处理这个消息.
望贴码!
...全文
54 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
边缘998 2009-06-18
  • 打赏
  • 举报
回复
试过了,不行.
yuyuhaso 2009-06-18
  • 打赏
  • 举报
回复
程序如果是你自己的当然就不要这么麻烦了
我怎么记得系统会继续执行下去的,只要你不EXIT,应该就会继续触发的嘛;
这样吧,如果你也没有EXIT,那么在你截获的消息的过程最后加上Inherited试试;
边缘998 2009-06-18
  • 打赏
  • 举报
回复
什么HOOK啊,不需要哪么复杂,重写WIN过程,将消息处理就可以满足了,关键我截到WM_NCLBUTTONDOWN,哪几个按钮事件也是进来了,搞得我关不了窗口,如果我不想处理这消息,怎么交由上一级或主程序者处理.
bdmh 2009-06-18
  • 打赏
  • 举报
回复
用WM_NCHITTEST 消息,它的Result返回值如下
HTERROR = -2;
HTTRANSPARENT = -1;
HTNOWHERE = 0;
HTCLIENT = 1;
HTCAPTION = 2;//这个表示鼠标在标题栏
HTSYSMENU = 3;
HTGROWBOX = 4;
HTSIZE = HTGROWBOX;
HTMENU = 5;
HTHSCROLL = 6;
HTVSCROLL = 7;
HTMINBUTTON = 8;
HTMAXBUTTON = 9;
HTLEFT = 10;
HTRIGHT = 11;
HTTOP = 12;
HTTOPLEFT = 13;
HTTOPRIGHT = 14;
HTBOTTOM = 15;
HTBOTTOMLEFT = $10;
HTBOTTOMRIGHT = 17;
HTBORDER = 18;
HTREDUCE = HTMINBUTTON;
HTZOOM = HTMAXBUTTON;
HTSIZEFIRST = HTLEFT;
HTSIZELAST = HTBOTTOMRIGHT;
HTOBJECT = 19;
HTCLOSE = 20;
HTHELP = 21;
DreamMan81 2009-06-18
  • 打赏
  • 举报
回复
试试WM_NCHITTEST消息。
xinxinshou2009 2009-06-18
  • 打赏
  • 举报
回复
你可以在消息里先判断好点击的是不是“最大、最小、关闭”这三个按钮,如果是,就执行这三个按钮的原先功能;如果不是,该干嘛干嘛
yuyuhaso 2009-06-17
  • 打赏
  • 举报
回复
你搜索HOOK相关的资料
http://topic.csdn.net/t/20030319/13/1549754.html
这里个例子教你怎么捕获事件并且替换成自己的逻辑
sanguomi 2009-06-17
  • 打赏
  • 举报
回复
通过点击区域判断

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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