SetWindowPos hWnd,HWND_TOPM
OST,0,0,0,0,SWP_NOMOVE+SWP_NOSIZE+SWP_SHOWWINDOW就可以了。其中hWnd是窗口的句柄,HWND_TOPMOST指定了窗口的位置—总是在最上边。如果你要取消这个属性,只要把TOPMOST改成NOTOPMOST就可以了。后面4个参数指定了窗口的位置和大小,和VB提供的MOVE方法一样。不过最后一个参数如果指定了SWP_NOMOVE(不改变位置)和 SWP_NOSIZE(不改变大小),那么这四个参数就会被忽略。

解决方案 »

  1.   

    面是一个浮动窗口技术的例子。为了引起用户的注意,或者必须保证含有重要信息的窗口不被其他窗口覆盖,就要用到浮动窗口技术,建立一个“总在最前面”(TopMost)的窗口。具体的做法是:(1)在VB程序中加入如下的声明: Declare Function SetWindowPos Lib"user"(Byval h%,Byval hb%,Byval x%,Byval y%,By val cx%,Byval cy%,Byval f%)As Integer Global Const SWP_NOMOVE=2 Global Const SWP_NOSIZE=1 Global Const HWND_TOPMOST= 1 Global Const HWND_NOTOPMOST=2 Global Const FLAGS=SWP_NOMOVE Or SWP_NOSIZE (2)假设要把窗体frmExample设置成总在最前面的窗口,只要在frmExample窗体的Form_Load过程里加入以下代码:Dim success% success=SetWindowPos(frmExample.hWnd,HWND_TOPMOST,0,0,0,0,FLAGS) 如果要取消总在最前面的特性,则可以执行如下的代码:success=SetWindowPos(frmExample.hWnd,HWND_NOTOPMOST,0,0,0,0,FLAGS)success不等于0表示SetWindowPos执行成功。在MDI程序里,有一个窗口是所有其他窗口的父窗口,各个子窗口完成相对独立的功能,就像是多个独立的工具组合起来一样。在这方面,MS Word和Windows的File Manager是最好的例子。
      

  2.   

    对!用SetWindowPos将窗口置于最上方,然后用SendMessage函数实现窗口移动就可以了。具体使用查一下API函数表。