ReleaseCaputure的问题(50分)

  • 主题发起人 主题发起人 mwj9
  • 开始时间 开始时间
M

mwj9

Unregistered / Unconfirmed
GUEST, unregistred user!
有一程序:加入一个edit控件,用perform函数用来实现拖动,
procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
; Shift: TShiftState; X, Y: Integer);
const
; ;sc=$f012;
begin
; releasecapture;
; (sender as TWinControl).Perform(WM_SysCommand,sc,0);
end;
这里为什么要用releasecapure,请详细说明
 
;The ReleaseCapture function releases the mouse capture from a window in the current thread
and restores normal mouse input processing. A window that has captured the mouse receives
all mouse input, regardless of the position of the cursor, except when a mouse button is clicked
while the cursor hot spot is in the window of another thread.
 
为什么去掉releasecapture后就无法拖动,希望不是delphi的联机文档
 
当你按下鼠标时需要发送WM_LBUTTONDOWN消息,如果你想拖动控件,就必须释放
对鼠标动作的捕捉;ReleaseCapture 使得控件接收到一个WM_CAPTURECHANGED 消息,
这时你就可以发送WM_SysCommand消息,拖动控件了。
建议看看WINDOWS的消息处理机制。
 
接受答案了.
 

Similar threads

I
回复
0
查看
724
import
I
I
回复
0
查看
578
import
I
I
回复
0
查看
738
import
I
后退
顶部