龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VB开发 >

VB调用API函数使窗口保持在最上层

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
----我们看到有的应用程序不管窗口是否活动都使窗口保持在最上层,常见的MicrosoftWord的文件打开和编辑查找窗口就是这样。在VB开发中可以通过调用SetWindowsPos()API函数实现这个功能。该
----我们看到有的应用程序不管窗口是否活动都使窗口保持在最上层,常见的MicrosoftWord的文件打开和编辑查找窗口就是这样。在VB开发中可以通过调用SetWindowsPos()API函数实现这个功能。该函数声明如下:
  
  PrivateDeclareFunctionSetWindowPos
  Lib"user32"(ByValhwndAsLong,_
  ByValhWndInsertAfterAsLong,ByVal
  xAsLong,ByValyAsLong,_
  ByValcxAsLong,ByValcyAsLong,
  ByValwFlagsAsLong)AsLong
  
  ----hWnd变元是窗口的句柄;x,y是窗口的左上角的坐标;cx、cy是窗口宽度和高度;hWndInsertAfter变元是窗口清单中hWnd窗口前面的窗口句柄,有四个可选值:
  
  序号可选值作用
  1HWND_BOTTOM把窗口放在窗口清单的底部
  2HWND_TOP把窗口放在窗口清单的字符顺序的顶部
  3HWND_TOPMOST把窗口放在窗口清单的顶部
  4HWND_NOTOPMOST把窗口放在窗口清单的顶部,最上层窗口之下
  
  ----WFlags变元为整型值,有八个可选值:
  
  序号可选值作用
  1SWP_DRAWFRAME在窗口周围画一个方框
  2SWP_HIDEWINDOW隐藏窗口
  3SWP_NOACTIVATE不激活窗口
  4SWP_NOMOVE保持窗口当前位置
  5SWP_NOREDRAW窗口不自动重画
  6SWP_NOSIZE保持窗口当前尺寸
  7SWP_NOZORDER保持窗口在窗口清单中的当前位置
  8SWP_SHOWWINDOW显示窗口
  
  ----下面的例子程序Test演示了对函数中的以上7个变元作正确的选择后,应用程序运行后窗口总可保持在最上层,程序清单如下:
  
  OptionExplicit
  PrivateDeclareFunctionSetWindowPos
  Lib"user32"(ByValhwndAsLong,_
  ByValhWndInsertAfterAsLong,
  ByValxAsLong,ByValyAsLong,_
  ByValcxAsLong,ByValcyAsLong,
  ByValwFlagsAsLong)AsLong
  PrivateConstHWND_TOPMOST=-1
  PrivateConstSWP_SHOWWINDOWS=&H40
  
  PrivateSubForm_Load()
  DimretValueAsLong
  retValue=SetWindowPos(Me.hwnd,
  HWND_TOPMOST,Me.CurrentX,_
  Me.CurrentY,300,300,SWP_SHOWWINDOWS)
  EndSub
  
  ----备注:编写函数声明时,整个函数声明须在一行中写完,不可提行。一般是自动从系统中得到函数声明,方法是从VB的外接程序管理中启动“API浏览”程序,在“API浏览”程序中找到所需的函数声明,然后复制到VB代码中。->

精彩图集

赞助商链接