怎让窗口显示在最前面?(100分)

  • 主题发起人 主题发起人 bugcool
  • 开始时间 开始时间
B

bugcool

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了一个程序,可以监视剪贴板的内容。当剪贴板变化时
就会把新的内容COPY到MEMO,这个时候我就要让窗体显示到
最前面,怎么做?
我用
SetForegroundWindow(form1.Handle);
BringWindowToTop(form1.Handle);
窗口图标只是闪动提示我,它并没有显示在最前面。
 
窗体的formstyle:=fsStayOnTop;前端显示
formsyle:=fsNormal;普通显示
 
同意chemer
 
或者:
SetWindowPos(Form1.handle, HWND_TopMost, 0,0,0,0,
SWP_NoMove or SWP_NoSize or SWP_ShowWindow); --前端显示
SetWindowPos(Form1.handle, HWND_NoTopMost, 0,0,0,0,
SWP_NoMove or SWP_NoSize or SWP_ShowWindow); --普通显示

 
我也遇到过这个问题,下面就是解决的办法,我试过了,可以用,给分吧


如何使你的窗口Stay on Top

---- 在Delphi中让窗体"StayOnTop"最简单的办法是设置Form的"FormStyle"属性为”fsStayOnTop”,但采用这种方法,如果再设置"FormStyle"属性为其他模式时,会出现窗口跳动闪烁。为了避免这个问题,这里可以利用API的威力来实现同样的功能。

---- 4.1、设置窗体为"StayOnTop"风格.

SetWindowPos(Form1.handle, HWND_TOPMOST,
Form1.Left, Form1.Top, Form1.Width, Form1.Height,0);
这里的Form1为你的窗体的名字
4.2、设置窗体为正常的、非Topmost风格
SetWindowPos(Form1.handle, HWND_NOTOPMOST,
Form1.Left, Form1.Top, Form1.Width, Form1.Height,0);
 
formstyle:=fsStayOnTop;
当然,laohe is better!
 
使用formstyle:=fsStayOnTop;有时会闪
我喜欢用
SetWindowPos(handle, hwnd_TopMost, 0, 0, 0, 0, swp_NoMove or swp_NoSize);
推荐!
 
可以的话


快快给分,按先后来,我快没钱买米了
 
各位大哥,用SetWindowPos()根本不行啊。
用SetForegroundWindow()窗口还闪动一下,
它根本就不闪。
 
多人接受答案了。
 

Similar threads

后退
顶部