获得某窗体句柄后想要执行.hide似的操作该发什么消息?
之后再显示出来(.show)该发什么消息?

解决方案 »

  1.   

    Public Const SW_HIDE = 0Public Const SW_SHOW = 5
      

  2.   

    Public Const wm_showwindow = 24隐藏:
    SendMessage hwnd, wm_showwindow, 0, vbNull显示:
    SendMessage hwnd, wm_showwindow, 1, vbNull
      

  3.   

    我是用ONLINE的方法,ISFTEST的我看看……
      

  4.   

    留言收到。奇怪,上次给你的回复我是经过测试通过的,今天试一下却不行。。不知道是哪里出了问题。。原因待查,如果急用还是用online的方法吧,一个很简单的例子:在form中加入一个listbox,三个command'模块中:
    Option Explicit
    Public Const SW_HIDE = 0
    Public Const SW_SHOW = 5
    Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongFunction EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Boolean
        Dim S As String
        
        S = String(80, 0)
        Call GetWindowText(hwnd, S, 80)
        S = Left(S, InStr(S, Chr(0)) - 1)
        
        If Len(S) > 0 Then Form1.List1.AddItem S
        
        EnumWindowsProc = True
    End Function'程序中:
    Private Sub Command1_Click()
        List1.Clear
        EnumWindows AddressOf EnumWindowsProc, 0&
    End SubPrivate Sub Command2_Click()
    Dim hwd As Long
    hwd = FindWindow(vbNullString, List1.Text)
    Debug.Print hwd
    ShowWindow hwd, SW_HIDE
    End SubPrivate Sub Command3_Click()
    Dim hwd As Long
    hwd = FindWindow(vbNullString, List1.Text)
    Debug.Print hwd
    ShowWindow hwd, SW_SHOW
    End Sub运行程序,点击command1,listbox中出现程序列表,点选一个,例如“计数器”或“我的电脑”之类,点击command2会把它隐藏,点command3显示。。
    上面程序在vb6+sp5+xp下通过。。