SetForegroundWindow就可以,程序内部,SetActiveWindow也可以
如果用快捷键,可以看msdn 帮助,有例子的,设置子类的
如果用快捷键,可以看msdn 帮助,有例子的,设置子类的
解决方案 »
- 闲着没事预言一下,2012年啥事都木有啊,不管你信不信,反正我是信了。
- listview如何随窗体的改变而自动充满这个窗体?
- 为什么对象点不出来
- 把U盘用1覆盖是不是把U盘物理扇区内容全部写成1?
- fpspread 使用大问题...记录条数不到2000条,为什么程序运行好慢~~~~~~~!@$!@$
- 如何把datagrid最前面有小三角的那列去掉
- 关于插入到表的问题...
- 请问如何用VB获取摄像头的拍取动画!~
- 在调用API时如何指定缓冲区长度?
- activereport报表,一个字段内容超过field宽度时,横线下移,怎样让竖线的长度跟着变化?
- 如何得到richtextbox的总行数?
- 一扰我好久的关于sql2000的问题
系统的,那就要在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的窗口句柄,这个应该会吧
按快捷键后用那几个函数
标准模块中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