自己的程序里有个IE控件,把它的右键屏蔽了?
以下是我用VB来实现的:
'//////////////////Form1/////////////////////
Option Explicit
Dim hAimWnd As Long
Private Sub Form_Load()
WebBrowser1.Navigate "e:\bookmark.htm"
DoEvents
hAimWnd = 0&
Me.Show
DoEvents
FindWebPage Me.hWnd
If hAimWnd <> 0& Then
HookWind hAimWnd
Debug.Print hAimWnd
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
UnHookWind hAimWnd
End Sub
Public Sub FindWebPage(ByVal hParentWnd As Long)
Dim strClassName As String * 30
Dim hTempWnd As Long
hTempWnd = GetWindow(hParentWnd, GW_CHILD) '找找孩子
Do While (hTempWnd <> 0)
strClassName = ""
GetClassName hTempWnd, strClassName, 30
Debug.Print strClassName '给我报上姓名!!
If Left(strClassName, Len("Internet Explorer_Server")) = "Internet Explorer_Server" Then
hAimWnd = hTempWnd
Exit Sub
End If
FindWebPage hTempWnd ', lgAim
hTempWnd = GetWindow(hTempWnd, GW_HWNDNEXT) '找找同级兄弟
Loop
End Sub
'//////////Module1///////////////////////////
Option Explicit
'Api声明
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private 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 Long
Public Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long
Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
'系统参数宏
Public Const GW_CHILD As Long = 5
Public Const GW_HWNDNEXT As Long = 2
Public Const GWL_WNDPROC As Long = -4
Public Const WM_RBUTTONDOWN As Long = &H204
Public Const WM_RBUTTONDBLCLK As Long = &H206
Public Const WM_RBUTTONUP As Long = &H205
'个人参数设定
Dim lpPrevWndFunc As Long
Public Function HookWind(ByVal hWnd As Long) As Long
lpPrevWndFunc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf WindowProc)
End Function
Public Function UnHookWind(ByVal hWnd As Long) As Long
SetWindowLong hWnd, GWL_WNDPROC, lpPrevWndFunc
End Function
Public Function WindowProc( _
ByVal hWnd As Long, _
ByVal uMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Select Case uMsg
Case WM_RBUTTONUP, WM_RBUTTONDOWN, WM_RBUTTONDBLCLK
WindowProc = 1
Exit Function
Case Else
WindowProc = CallWindowProc(lpPrevWndFunc, hWnd, uMsg, wParam, lParam)
End Select
End Function
但是用VC怎么做呢?
还想请教一下,怎么知道一张网页已经全部加载完了,不同大小的网页,所要加载的时间也不一样呀,因为只有网页全加载完成了才能找到Internet Explorer_Server类。
我刚刚学VC,而东西要的很急,我不知道怎么从VB迅速找到VC的感觉呀。
比如SetWindowLong(hWnd, GWL_WNDPROC, AddressOf WindowProc)最后一个参数在VC里怎么用这个回调呢?AddressOf的代替是什么呢?还有像是:SetWindowLong(hWnd, GWL_WNDPROC, AddressOf WindowProc)这要在VC里放到哪个相应的地方?
******************网页全部加载完成的消息是什么呢?**********************
请各位帮忙了!!!!!!!!
最好给源码,讲详细些!!!!
我很想快速找到VC的感觉!!