SetForegroundWindow就可以,程序内部,SetActiveWindow也可以
如果用快捷键,可以看msdn 帮助,有例子的,设置子类的

解决方案 »

  1.   

    我的意思是这样的,A是我自己的程序,B是别人的东西,现在假设当前窗口是B,那么怎么样按某个快捷键回到A来?
      

  2.   

    不知道你的快捷键是指程序A的还是系统的快捷键,如果是程序A的就好办,如果是
    系统的,那就要在A中注册热键,一点代码提示
    Public Const WM_USER1 = (WM_USER + 1)
    gHW = Me.hwnd
            Dim nTmp As Long
            nTmp = RegisterHotKey(frmMain.hwnd, WM_HOTKEY, MOD_CONTROL, VK_TAB)
            If nTmp = 0 Then
                MsgBox "无法注册热键"
                End
            End If
            nTmp = RegisterHotKey(frmMain.hwnd, WM_USER1, MOD_CONTROL, VK_HOME)
            If nTmp = 0 Then
                MsgBox "无法注册热键"
                End
            End If
    然后得到B的窗口句柄,这个应该会吧
    按快捷键后用那几个函数
      

  3.   

    就象QQ一样,当它的图标缩到任务栏时(或者有新的消息来时),按下热键就可以让QQ得到焦点。
      

  4.   

    有没定义量的自己定义一下
    标准模块中Declare Function CallWindowProc Lib "user32" Alias _
    "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
       ByVal hwnd As Long, ByVal Msg As Long, _
       ByVal wParam As Long, ByVal lParam As Long) As LongDeclare Function SetWindowLong Lib "user32" Alias _
    "SetWindowLongA" (ByVal hwnd As Long, _
    ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Public Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As LongPublic Const GWL_WNDPROC = -4
    Global lpPrevWndProc As Long
    Global lpPrevWndProc1 As Long
    Global gHW As Long
    Public Const WM_MOVE = &H3Function WindowProc(ByVal hw As Long, ByVal uMsg As _
    Long, ByVal wParam As Long, ByVal lParam As Long) As _
    Long
       
       Debug.Print "Message: "; hw, uMsg, wParam, lParam
               If uMsg = WM_MOVE Then'此处的wm_move是窗体移动后触发,
                                     '想移动前后都触发,用533代替 
                                     'wm_move,至于什么意思,我不记得了
                MsgBox ""
               End If
    If uMsg = WM_HOTKEY Then
                If lParam = 589826 Then          '这个地方跟踪看看
                    Dim ss As Boolean
                    
                    If IsWindowVisible(lhWnd) = 0 And lhWnd <> 0 Then
                            If GetParent(GetParent(lhWnd)) = Form1.hwnd Or GetParent(lhWnd) = Form1.hwnd Or lhWnd = Form1.hwnd Then Exit Function
                            If lhWnd <> 0 Then
            
                                ss = ShowWindow(lhWnd, 1)
                            End If
                    Else
                            If GetParent(GetParent(lhWnd)) = Form1.hwnd Or GetParent(lhWnd) = Form1.hwnd Or lhWnd = Form1.hwnd Then Exit Function
                            If lhWnd <> 0 Then
                                ss = ShowWindow(lhWnd, 0)
                            End If
                    End If
                End If
               End If
            WindowProc = CallWindowProc(lpPrevWndProc, hw, _
       uMsg, wParam, lParam)
    End Function
    窗体子过程
    Public Sub Hook()
       lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, _
       AddressOf WindowProc)
    End SubPublic Sub Unhook()
       Dim temp As Long
       temp = SetWindowLong(gHW, GWL_WNDPROC, _
       lpPrevWndProc)
    End Sub
    form的load事件中
    Dim nTmp As Long
    nTmp = RegisterHotKey(Form1.hwnd, WM_HOTKEY, MOD_CONTROL, VK_TAB)
    gHW = Me.hwnd
    hook
    form的unload 事件中
    Dim nTmp As Long
    nTmp = UnregisterHotKey(Form1.hwnd, WM_HOTKEY)
    unhook
      

  5.   

    copy自己的代码,没时间理,不好意思