怎样让窗口总在最前?(100分)

  • 主题发起人 主题发起人 tiger007
  • 开始时间 开始时间
T

tiger007

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了一个程序,有一个主控制界面,一旦一个界面被隐藏或者最小化时,就
弹出一个POP条,这个POP条需要总在最前台,我使用了两种方法
1.设此POP条的FormStyle := fsStayOnTop;
(这种方法对第一个窗体有用,但对POP条无效.)
2.使用API函数SetWindowPos.
,可都达不到我的要求,请教各位高手指点,谢谢!
 
试试看用THintWindow:
HintWindow:=THintWindow.CReate(self);
HintWindow.Brush.Color:=clInfoBk;
HintWindow.Canvas.Font.Color:=clInfoText;
HintWindow.ActivateHint(Rect,YourText);//在Rect显示Hint
如果对外观不满意,可以继承并在CreateParams中修改Style
 
你的POP条窗口
1、用FORM1.show显示(不要用showmodal)
2、form1.FormStyle := fsStayOnTop
 
我的POP窗口确实使用Show显示的,没有使用ShowModal().
 
tqz,LSS:
谢谢你们的回答,不过,我的POP条上还有几个按钮和图标,THintWindow可以
满足这个要求吗?
 
它是问题是关于的windows应用程序队列的问题,不是一个程序内部的问题.
 
还真是这中情况也,略施小计,试试这个:
在pop条窗口的class定义中加入:
procedure CreateParams(var params :TCreateParams);override;
...
implementation
procedure TForm1.CreateParams(var params :TCreateParams);
begin
inherited;
params.wndparent := Form1.handle;
end;
 
谢谢各位高手:
 
>我的POP条上还有几个按钮和图标,
这么快就结束了?我还是要答!
这些东西可以动态创建,parent:=HintWindow,就像一般的WinControl
 
后退
顶部