我在MDI 用WndProc 来监控这个窗体发生的事件
然后 MDI里面有一些子窗体
Private Sub MDIForm_Load()
On Error Resume Next prvWinProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)
ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf WndProc)End Sub
现在的问题就是,现在调试这个程序的时候,我想要暂停调试的时候,却发现MDI始终在受监控,VB却没有办法获得焦点,请问,有什么办法可以解决这个问题吗?
然后 MDI里面有一些子窗体
Private Sub MDIForm_Load()
On Error Resume Next prvWinProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)
ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf WndProc)End Sub
现在的问题就是,现在调试这个程序的时候,我想要暂停调试的时候,却发现MDI始终在受监控,VB却没有办法获得焦点,请问,有什么办法可以解决这个问题吗?
解决方案 »
- 如何捕捉 ListView 滚动条事件
- 查询问题
- 100分求救仍未解决的问题---------------为什么我的用下面的方法关掉EXCEL,进程中总有EXCEL.exe存在,当关机的时候却总要提示保存模板?
- 如何通过数据库对象使用SQL语言?
- 请vb高手指教,很急,我刚学,感觉很难
- 菜鸟之问---数组上下界问题
- Access的数据表中有类似于Oracle的序列吗?
- 关于data控件使用的问题
- 有什么办法把生成的数据打印到已经印好的表格上的预留位置上?
- 关于印度软件和中国软件的比较,发人深思,建议现在的中国程序员和未来的程序员
- error 49:error in loading dll
- 求助:如何在程序里打开服务器机器上的系统数据源(SQL)
怎么能捕捉到呢,Ctrl+Pause Break 或点那一个 ||是呀,问题是在什么时候用呀,
IF MSG=WM_KEYUP AND WPARAM=3 THEN WndProc=CallWindowProc(prvWinProc, hwnd, Msg, wParam, lParam)
'IF MSG=WM_KEYUP AND WPARAM=3 THEN WndProc=CallWindowProc(prvWinProc, hwnd, Msg, wParam, lParam)那是他打开VB然后用鼠标点了一下那个暂停怎么办呢
1.我把 WndProc 之类的函数放到 了这个DLL里面
由于我的WndProc 是监控的一个菜单,点了菜单就要调用这个字符对应的窗体
我DLL编译之后,发这我要调用的这些窗体DLL里面没有,
于是我就想用现实然后把些调用窗体的代码还是写回到那些窗体里面于是有了'模块里Dim AAA as New ClsMenu
Public Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
On Error GoTo errhandle:
Dim LngSelectMenuHwnd As Long
Dim LngActWindow As LongDim StrFrm As String
If Msg = WM_COMMAND Then If lParam = 0 Then
'如果点中菜单的话就让类去触发事件
Call AAA.SelectedMenu(hwnd, Msg, wParam, lParam)
End If End If
WndProc = CallWindowProc(prvWinProc, hwnd, Msg, wParam, lParam)
Exit Functionerrhandle:
MsgBox Err.Description
ErrHandleNoErr:
WndProc = CallWindowProc(prvWinProc, hwnd, Msg, wParam, lParam)
Exit Function
End FunctionClsMenu里面有
Public Event SelectMenued(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long)Public Sub SelectedMenu(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long)
RaiseEvent SelectMenued(hwnd, Msg, wParam, lParam)
’让窗体里的代码来加载窗体
End Sub
窗体里面是这样的
Dim WithEvents ClsMainMenu as ClsMenu可是问题是为什么我在窗体里却没有
Private Sub ClsMainMenu_SelectedMenu
end Sub
被触发