C
caowei
Unregistered / Unconfirmed
GUEST, unregistred user!
快被搞死了 。。。。
Form1,里面有个按钮button1,按下后,显示form2。
要求:
1. form2在form1的上面,form1始终在桌面其他所有窗口的上面
2. form1和form2都不能最小化,即使按下任务栏的“显示桌面”。
我已经把DFW的文章查遍了,综合出的方法如下:
在两个FORM创建的时候均调用SetWindowPos(handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
为了使窗口不能被缩小,在Form1创建时调用:
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
结果:
所需要的两个功能均没有实现!如果不点button1,那么form1就是对的,即它总在最前面
而且不能被缩小,但是为什么一旦form2出来就都不对了呢???
怎么办呢????
procedure TForm1.FormCreate(Sender: TObject);
begin
SetWinDowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
SetWindowPos(handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.show;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
SetWindowLong(Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
SetWindowPos(handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
end;
Form1,里面有个按钮button1,按下后,显示form2。
要求:
1. form2在form1的上面,form1始终在桌面其他所有窗口的上面
2. form1和form2都不能最小化,即使按下任务栏的“显示桌面”。
我已经把DFW的文章查遍了,综合出的方法如下:
在两个FORM创建的时候均调用SetWindowPos(handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
为了使窗口不能被缩小,在Form1创建时调用:
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
结果:
所需要的两个功能均没有实现!如果不点button1,那么form1就是对的,即它总在最前面
而且不能被缩小,但是为什么一旦form2出来就都不对了呢???
怎么办呢????
procedure TForm1.FormCreate(Sender: TObject);
begin
SetWinDowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
SetWindowPos(handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.show;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
SetWindowLong(Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
SetWindowPos(handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
end;