19 个解决方案
#1
up
#2
WM_NCLBUTTONDBLCLK WM_NCLBUTTONDOWN
这类消息应该是非客户区的消息吧,
不知道你的panel是怎么响应的。
这类消息应该是非客户区的消息吧,
不知道你的panel是怎么响应的。
#3
你给我试一试Panel如何响应WM_NCLBUTTONDBLCLK消息看看
#4
不可以的。非客户区
#5
to Linux2001(恋人不如自恋) :
====================================
你自己作个panel组件,然后重写 WM_LBUTTONDOWN 这个消息
Procedure TRollUpTitel.LButtonDown(Var Message: TWMLButtonDown);
Begin
inherited;
releasecapture;
sendmessage(Parent.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
End;
你看它响应不响应!!!
不知道就说不知道, 何必搞的你和高手一样。
====================================
你自己作个panel组件,然后重写 WM_LBUTTONDOWN 这个消息
Procedure TRollUpTitel.LButtonDown(Var Message: TWMLButtonDown);
Begin
inherited;
releasecapture;
sendmessage(Parent.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
End;
你看它响应不响应!!!
不知道就说不知道, 何必搞的你和高手一样。
#6
sendmessage(Parent.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
去掉parent
sendmessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
去掉parent
sendmessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
#7
button 居然都可以响应 , 谁能告诉我为什么!!!!!!
#8
sendmessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
你把这个消息发送过去以后,你得panel是怎么响应这个消息的?
你把这个消息发送过去以后,你得panel是怎么响应这个消息的?
#9
to flyforlove(为情飞)
================================
实际上就是鼠标按着form的标题栏拖动的效果, 也就是说发完这个消息,你就可以按着鼠标左键来拖动这个panel了,
================================
实际上就是鼠标按着form的标题栏拖动的效果, 也就是说发完这个消息,你就可以按着鼠标左键来拖动这个panel了,
#10
原来如此,你想实现在客户区托动窗体的功能,
那你就理解错了,
你这个消息其实是发送给窗体的,
并不是你得panel来响应的,这几个消息都是非客户区相应的。
sendmessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
你这里的handle其实是窗体的handle,
csdn上的红星星们可不是吃素的,可不要轻易说人家不懂,哈哈。
那你就理解错了,
你这个消息其实是发送给窗体的,
并不是你得panel来响应的,这几个消息都是非客户区相应的。
sendmessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
你这里的handle其实是窗体的handle,
csdn上的红星星们可不是吃素的,可不要轻易说人家不懂,哈哈。
#11
这个消息是非客户窗体部分的双击事件,非客户窗体部分的理解最好看看vcmfc这本书就明白了
#12
to flyforlove(为情飞)
================================
怎么会是窗体那, 这个handle是继承自panel的组件。。。。。
tapnel = class(TPanel)
public
Procedure LButtonDown(Var Message: TWMLButtonDown); Message WM_LBUTTONDOWN;
Procedure LButtonDBDown(Var Message: TWMLButtonDblClk); Message WM_LBUTTONDBLCLK;
end;
这里面
procedure tapnel.LButtonDown(var Message: TWMLButtonDown);
begin
releasecapture;
sendmessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
end;
的handle会是窗体的handle吗?????? 不懂,请赐教?
================================
怎么会是窗体那, 这个handle是继承自panel的组件。。。。。
tapnel = class(TPanel)
public
Procedure LButtonDown(Var Message: TWMLButtonDown); Message WM_LBUTTONDOWN;
Procedure LButtonDBDown(Var Message: TWMLButtonDblClk); Message WM_LBUTTONDBLCLK;
end;
这里面
procedure tapnel.LButtonDown(var Message: TWMLButtonDown);
begin
releasecapture;
sendmessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
end;
的handle会是窗体的handle吗?????? 不懂,请赐教?
#13
to flyforlove(为情飞)
原来如此,你想实现在客户区托动窗体的功能,
================================
我实现的并不是托动窗体的功能,而是在窗体中拖动panel的功能
原来如此,你想实现在客户区托动窗体的功能,
================================
我实现的并不是托动窗体的功能,而是在窗体中拖动panel的功能
#14
你可以确认一下,在你的这段代码添加一个showmessage(inttostr(handle));
然后把你编写的这个组件拖到窗体里,
然后在窗体的一个button click事件里写一个
showmessage(inttostr(form1.handle));
你看看这两个handle的值是不是一样的。
然后把你编写的这个组件拖到窗体里,
然后在窗体的一个button click事件里写一个
showmessage(inttostr(form1.handle));
你看看这两个handle的值是不是一样的。
#15
原来是这样呀,我误会你的意思了。
我再看看。
我再看看。
#16
to flyforlove(为情飞)
===============================
呵呵 没关系 我还要谢谢你有空来看我的问题那
不是一样的,看完你的后我试了一下,两个handle值是不一样的。
===============================
呵呵 没关系 我还要谢谢你有空来看我的问题那
不是一样的,看完你的后我试了一下,两个handle值是不一样的。
#17
呵呵,真是有意思,我一直以为这类消息是用在非客户区的,
没想到还有这样的用法,
我试了一下TWinControl类的子类里,
只有TCustomControl里的子类没有办法响应WM_NCLBUTTONDBLCLK消息,
别的都可以,
TWinControl类的子类都可以响应WM_NCLBUTTONDOWN消息,
至于为什么会是这样的,我也不知道,哈哈。
没想到还有这样的用法,
我试了一下TWinControl类的子类里,
只有TCustomControl里的子类没有办法响应WM_NCLBUTTONDBLCLK消息,
别的都可以,
TWinControl类的子类都可以响应WM_NCLBUTTONDOWN消息,
至于为什么会是这样的,我也不知道,哈哈。
#18
to flyforlove(为情飞)
===============================
呵呵 我找了半天vcl的源码,我认为其实form、panel、button都是窗体,为什么TWinControl类的子类都可以响应WM_NCLBUTTONDOWN消息,肯定是vcl里什么地方处理了,所以才会有的只响应WM_NCLBUTTONDOWN这个消息,而不响应WM_LBUTTONDBLCLK这个消息,但是我却找不到,不知道你怎么想。
===============================
呵呵 我找了半天vcl的源码,我认为其实form、panel、button都是窗体,为什么TWinControl类的子类都可以响应WM_NCLBUTTONDOWN消息,肯定是vcl里什么地方处理了,所以才会有的只响应WM_NCLBUTTONDOWN这个消息,而不响应WM_LBUTTONDBLCLK这个消息,但是我却找不到,不知道你怎么想。
#19
其实TWinControl下的都是窗体,看看帮助就知道了
TWinControl provides the common functionality for all controls that act as wrappers for Microsoft Windows screen objects ("windows").
按道理说TCustomControl类里的应该也可以响应WM_LBUTTONDBLCLK消息的。
但是不知道为什么,就是没有执行,这个还得看看源文件。
TWinControl provides the common functionality for all controls that act as wrappers for Microsoft Windows screen objects ("windows").
按道理说TCustomControl类里的应该也可以响应WM_LBUTTONDBLCLK消息的。
但是不知道为什么,就是没有执行,这个还得看看源文件。
#20
#1
up
#2
WM_NCLBUTTONDBLCLK WM_NCLBUTTONDOWN
这类消息应该是非客户区的消息吧,
不知道你的panel是怎么响应的。
这类消息应该是非客户区的消息吧,
不知道你的panel是怎么响应的。
#3
你给我试一试Panel如何响应WM_NCLBUTTONDBLCLK消息看看
#4
不可以的。非客户区
#5
to Linux2001(恋人不如自恋) :
====================================
你自己作个panel组件,然后重写 WM_LBUTTONDOWN 这个消息
Procedure TRollUpTitel.LButtonDown(Var Message: TWMLButtonDown);
Begin
inherited;
releasecapture;
sendmessage(Parent.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
End;
你看它响应不响应!!!
不知道就说不知道, 何必搞的你和高手一样。
====================================
你自己作个panel组件,然后重写 WM_LBUTTONDOWN 这个消息
Procedure TRollUpTitel.LButtonDown(Var Message: TWMLButtonDown);
Begin
inherited;
releasecapture;
sendmessage(Parent.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
End;
你看它响应不响应!!!
不知道就说不知道, 何必搞的你和高手一样。
#6
sendmessage(Parent.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
去掉parent
sendmessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
去掉parent
sendmessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
#7
button 居然都可以响应 , 谁能告诉我为什么!!!!!!
#8
sendmessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
你把这个消息发送过去以后,你得panel是怎么响应这个消息的?
你把这个消息发送过去以后,你得panel是怎么响应这个消息的?
#9
to flyforlove(为情飞)
================================
实际上就是鼠标按着form的标题栏拖动的效果, 也就是说发完这个消息,你就可以按着鼠标左键来拖动这个panel了,
================================
实际上就是鼠标按着form的标题栏拖动的效果, 也就是说发完这个消息,你就可以按着鼠标左键来拖动这个panel了,
#10
原来如此,你想实现在客户区托动窗体的功能,
那你就理解错了,
你这个消息其实是发送给窗体的,
并不是你得panel来响应的,这几个消息都是非客户区相应的。
sendmessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
你这里的handle其实是窗体的handle,
csdn上的红星星们可不是吃素的,可不要轻易说人家不懂,哈哈。
那你就理解错了,
你这个消息其实是发送给窗体的,
并不是你得panel来响应的,这几个消息都是非客户区相应的。
sendmessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
你这里的handle其实是窗体的handle,
csdn上的红星星们可不是吃素的,可不要轻易说人家不懂,哈哈。
#11
这个消息是非客户窗体部分的双击事件,非客户窗体部分的理解最好看看vcmfc这本书就明白了
#12
to flyforlove(为情飞)
================================
怎么会是窗体那, 这个handle是继承自panel的组件。。。。。
tapnel = class(TPanel)
public
Procedure LButtonDown(Var Message: TWMLButtonDown); Message WM_LBUTTONDOWN;
Procedure LButtonDBDown(Var Message: TWMLButtonDblClk); Message WM_LBUTTONDBLCLK;
end;
这里面
procedure tapnel.LButtonDown(var Message: TWMLButtonDown);
begin
releasecapture;
sendmessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
end;
的handle会是窗体的handle吗?????? 不懂,请赐教?
================================
怎么会是窗体那, 这个handle是继承自panel的组件。。。。。
tapnel = class(TPanel)
public
Procedure LButtonDown(Var Message: TWMLButtonDown); Message WM_LBUTTONDOWN;
Procedure LButtonDBDown(Var Message: TWMLButtonDblClk); Message WM_LBUTTONDBLCLK;
end;
这里面
procedure tapnel.LButtonDown(var Message: TWMLButtonDown);
begin
releasecapture;
sendmessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
end;
的handle会是窗体的handle吗?????? 不懂,请赐教?
#13
to flyforlove(为情飞)
原来如此,你想实现在客户区托动窗体的功能,
================================
我实现的并不是托动窗体的功能,而是在窗体中拖动panel的功能
原来如此,你想实现在客户区托动窗体的功能,
================================
我实现的并不是托动窗体的功能,而是在窗体中拖动panel的功能
#14
你可以确认一下,在你的这段代码添加一个showmessage(inttostr(handle));
然后把你编写的这个组件拖到窗体里,
然后在窗体的一个button click事件里写一个
showmessage(inttostr(form1.handle));
你看看这两个handle的值是不是一样的。
然后把你编写的这个组件拖到窗体里,
然后在窗体的一个button click事件里写一个
showmessage(inttostr(form1.handle));
你看看这两个handle的值是不是一样的。
#15
原来是这样呀,我误会你的意思了。
我再看看。
我再看看。
#16
to flyforlove(为情飞)
===============================
呵呵 没关系 我还要谢谢你有空来看我的问题那
不是一样的,看完你的后我试了一下,两个handle值是不一样的。
===============================
呵呵 没关系 我还要谢谢你有空来看我的问题那
不是一样的,看完你的后我试了一下,两个handle值是不一样的。
#17
呵呵,真是有意思,我一直以为这类消息是用在非客户区的,
没想到还有这样的用法,
我试了一下TWinControl类的子类里,
只有TCustomControl里的子类没有办法响应WM_NCLBUTTONDBLCLK消息,
别的都可以,
TWinControl类的子类都可以响应WM_NCLBUTTONDOWN消息,
至于为什么会是这样的,我也不知道,哈哈。
没想到还有这样的用法,
我试了一下TWinControl类的子类里,
只有TCustomControl里的子类没有办法响应WM_NCLBUTTONDBLCLK消息,
别的都可以,
TWinControl类的子类都可以响应WM_NCLBUTTONDOWN消息,
至于为什么会是这样的,我也不知道,哈哈。
#18
to flyforlove(为情飞)
===============================
呵呵 我找了半天vcl的源码,我认为其实form、panel、button都是窗体,为什么TWinControl类的子类都可以响应WM_NCLBUTTONDOWN消息,肯定是vcl里什么地方处理了,所以才会有的只响应WM_NCLBUTTONDOWN这个消息,而不响应WM_LBUTTONDBLCLK这个消息,但是我却找不到,不知道你怎么想。
===============================
呵呵 我找了半天vcl的源码,我认为其实form、panel、button都是窗体,为什么TWinControl类的子类都可以响应WM_NCLBUTTONDOWN消息,肯定是vcl里什么地方处理了,所以才会有的只响应WM_NCLBUTTONDOWN这个消息,而不响应WM_LBUTTONDBLCLK这个消息,但是我却找不到,不知道你怎么想。
#19
其实TWinControl下的都是窗体,看看帮助就知道了
TWinControl provides the common functionality for all controls that act as wrappers for Microsoft Windows screen objects ("windows").
按道理说TCustomControl类里的应该也可以响应WM_LBUTTONDBLCLK消息的。
但是不知道为什么,就是没有执行,这个还得看看源文件。
TWinControl provides the common functionality for all controls that act as wrappers for Microsoft Windows screen objects ("windows").
按道理说TCustomControl类里的应该也可以响应WM_LBUTTONDBLCLK消息的。
但是不知道为什么,就是没有执行,这个还得看看源文件。