热情软件屋

 

如何实现窗口总在最前面(Always on top)


编号:QA000076
建立日期: 1997年11月5日 最后修改日期:1999年11月25日
所属类别:

gwok:
    我做了一个显示时钟的form,想让他always on top,但找了好长时间,也没有找到在何处设置。

回答:

    实际上Always On Top是借助Windows API的SetWindowPos实现的。
    1、首先应该把以下声明放再窗体的声明部分:
    Const SWP_NOSIZE = &H1
    Const SWP_NOMOVE = &H2
    Const SWP_NOACTIVATE = &H10
    Const HWND_TOPMOST = -1
    Const HWND_NOTOPMOST = -2
    Const SWP_SHOWWINDOW = &H40
    Private Declare Function SetWindowPos Lib _
     "user32" Alias "SetWindowPos" (ByVal hwnd As Long, _
     ByVal hWndInsertAfter As Long, ByVal x As Long, _
     ByVal y As Long, ByVal cx As Long, ByVal cy As Long, _
     ByVal wFlags As Long) As Long
    使窗口Always On Top时,可以用下面的语句:
    SetWindowPos hWnd, HWND_TOPMOST, 0, 0, 0, 0, _
     SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE _
    Or SWP_NOSIZE
    使窗口取消Always On Top功能,用下面的语句:
    SetWindowPos hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, _
     SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE _
    Or SWP_NOSIZE

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio