已知某一窗体的句柄(Hwnd),请问如何将该窗体设置为当前窗体,谢谢各位了~~~

解决方案 »

  1.   

    简单:
    setforegroundwindow()
    就ok了!
      

  2.   

    setforegroundwindow(hwnd)这个方法不行吗?不可能的,我用过是可以的!SetActiveWindow hwnd这个方法是不行的,这两个函数有分别的,在win以前版本是可以的,但现在是不可以了,它仅仅是将该hwnd设置为活动窗体,但并不代表是当前窗体。有兴趣可以自己查看资料!!!呵呵
      

  3.   

    To 0211997(HI):
        你的语句我没有见过呀~能解释一下吗?
      

  4.   


    Declare Function SetWindowPos Lib "user32" (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
    Public Const SWP_NOMOVE = &H2 '不移动窗体
    Public Const SWP_NOSIZE = &H1 '不改变窗体尺寸
    Public Const Flag = SWP_NOMOVE Or SWP_NOSIZE
    Public Const HWND_TOPMOST = -1 '窗体总在最前面
    Public Const HWND_NOTOPMOST = -2 '窗体不在最前面
    Option Explicit
    '为窗体添加代码如下:
    Private Sub cmdNormal_Click()
       cmdTopMost.Enabled = True
       cmdNormal.Enabled = False
       Form1.Caption = "现在是普通窗口"
       SetWindowPos Form1.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, Flag
    End Sub
    Private Sub cmdTopMost_Click()
       cmdTopMost.Enabled = False
       cmdNormal.Enabled = True
       Form1.Caption = "现在是TopMost窗口"
       SetWindowPos Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, Flag
    End SubPrivate Sub Command2_Click()End SubPrivate Sub Timer1_Timer()
       cmdTopMost.Enabled = False
       cmdNormal.Enabled = True
       Form1.Caption = "现在是TopMost窗口"
       SetWindowPos Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, Flag
    End Sub这段代码能使你的窗体总在最前面..
    不知是不是你要的功能....:)
      

  5.   

    这里有个例子,可以解决你的要求
    http://www.china-askpro.com/msg34/qa70.shtml上面有个ForceFore.zip 的强制窗口置为当前窗口的小程序试试看