我想和大家讨论一下关于拖放问题
我想和大家讨论一下关于拖放问题,类似于蚂蚁一样,但要比它复杂。
我写了一个拖放窗口下面是原代码
private
{ Private declarations }
//创建拖放窗口
procedure Createparams(Var Params:TCreateParams);override;
//拖放窗口的移动
procedure WMNCHitTest( var Msg : TWMNCHitTest );message wm_NCHitTest;
………………
//在窗口上按下鼠标移动窗口
procedure TfrmDarg.WMNCHitTest( var Msg : TWMNCHitTest );
begin
if GetAsyncKeyState(VK_LButton) < 0 then
Msg.Result := HTCaption
else
Msg.Result := HTCLient;
end;
//创建窗口
procedure TfrmDarg.Createparams(var Params:TCreateParams);
begin
Inherited CreateParams(Params);
With Params do
begin
//Width:=40;
//Height:=40;
Style :=WS_CAPTION;
Style :=WS_POPUP;
EXStyle:=ExStyle or WS_EX_TOPMOST;// OR WS_EX_ACCEPTFILES or WS_DLGFRAME or WM_NCHITTEST;
WndParent:=GetDeskTopWindow();
end;
end;
这是窗口代码,现在让我们来讨论一下拖放的问题吧!