怎样使我的窗体显示在最前面(100分)

  • 主题发起人 主题发起人 JackyKen
  • 开始时间 开始时间
J

JackyKen

Unregistered / Unconfirmed
GUEST, unregistred user!
就像winnap那样的,请详细说明。谢谢!
 
用API函数SetWindowPos可以将任何窗体设置成为TopMost窗体, 即AlswaysOnTop:

function SetWindowPos(hWnd: HWND; hWndInsertAfter: HWND;
X, Y, cx, cy: Integer; uFlags: UINT): BOOL; stdcall;

其中:
hWnd: 窗体的 handle (参见已答问题如何得到窗体的handle)
hWndInsertAfter: 设置为 HWND_TOPMOST
其他信息可以用 GetWindowPlacement 函数得到

function GetWindowPlacement(hWnd: HWND; WindowPlacement: PWindowPlacement): BOOL; stdcall;

PWindowPlacement = ^TWindowPlacement;
{$EXTERNALSYM tagWINDOWPLACEMENT}
tagWINDOWPLACEMENT = packed record
length: UINT;
flags: UINT;
showCmd: UINT;
ptMinPosition: TPoint;
ptMaxPosition: TPoint;
rcNormalPosition: TRect;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
form1.formstyle:=fsstayontop;
end;
这样不就可以了?
 
主 窗口的 FormStyle 属性设为 fsStayOnTop
 
将窗体的BingFront属性设置为'True'
 
form1.formstyle:=fsstayontop;
会闪烁
 
不会呀,我用98+d5不会闪呀……
只是在别的地方点击后,焦点不在窗口上,我想应该不会有什么问题吧!
 

http://www.delphibbs.com/delphibbs/dispq.asp?lid=415809
 
接受答案了.
 
后退
顶部