我用这个办法移动无标题窗体:
//在Form1的“Private”部分声明过程:
procedure wmnchittest(var msg:twmnchittest);message wm_nchittest;
//在程序部分加入以下代码:
procedure TForm1.wmnchittest(var msg:twmnchittest);
begin
inherited;
if (htclient=msg.result) then msg.result:=htcaption;
end;但是这样做了之后窗口无法响应单击鼠标事情或其他的事件,联窗体上面的控间也收不到消息?请问有什么解决办法吗?
//在Form1的“Private”部分声明过程:
procedure wmnchittest(var msg:twmnchittest);message wm_nchittest;
//在程序部分加入以下代码:
procedure TForm1.wmnchittest(var msg:twmnchittest);
begin
inherited;
if (htclient=msg.result) then msg.result:=htcaption;
end;但是这样做了之后窗口无法响应单击鼠标事情或其他的事件,联窗体上面的控间也收不到消息?请问有什么解决办法吗?
ReleaseCapture;
SendMessage(Handle, WM_SYSCOMMAND, $F012, 0);
就好了,
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(self.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
end;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(Handle, WM_SYSCOMMAND, $F012, 0);
end
5分钟后结帖!
这个意思就是当你鼠标按下的时候,给系统一个消息,相当于你按下了标题栏.