12/05/2006, 06:27
|
| | | Fecha de Ingreso: febrero-2005 Ubicación: Venezuela
Mensajes: 524
Antigüedad: 19 años, 9 meses Puntos: 1 | |
Cambiar texto a botones de MsgBox Modulo:
Código:
Public hHook As Long
Public Const WH_CALLWNDPROCRET = 12
Public Const GWL_HINSTANCE = (-6)
Private Type tagCWPRETSTRUCT
lResult As Long
lParam As Long
wParam As Long
message As Long
hWnd As Long
End Type
Private Const WM_INITDIALOG = &H110
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public Declare Function GetCurrentThreadId Lib "kernel32" () As Long
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _
(ByVal idHook As Long, ByVal lpfn As Long, _
ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Long) As Long
Private Declare Function CallNextHookEx Lib "user32" _
(ByVal hHook As Long, ByVal nCode As Long, _
ByVal wParam As Long, lParam As Any) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal Length As Long)
Private Const IDOK = 1
Private Const IDCANCEL = 2
Private Const IDABORT = 3
Private Const IDRETRY = 4
Private Const IDIGNORE = 5
Private Const IDYES = 6
Private Const IDNO = 7
Private Declare Function SetDlgItemText Lib "user32" Alias "SetDlgItemTextA" _
(ByVal hDlg As Long, ByVal nIDDlgItem As Long, _
ByVal lpString As String) As Long
Public Function CallWndRetProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim lr As Long
Dim s As tagCWPRETSTRUCT
lr = CallNextHookEx(hHook, nCode, wParam, lParam)
If (nCode < 0) Then
CallWndRetProc = lr
Exit Function
End If
Call CopyMemory(s, ByVal lParam, Len(s))
If (s.message = WM_INITDIALOG) Then
Call SetDlgItemText(s.hWnd, IDYES, "Aprobar")
Call SetDlgItemText(s.hWnd, IDNO, "Rechazar")
UnhookWindowsHookEx hHook
lr = 0&
End If
CallWndRetProc = lr
End Function
Form:
Código:
Dim hInst As Long
Dim Thread As Long
Dim i As Long
hInst = GetWindowLong(Me.hWnd, GWL_HINSTANCE)
Thread = GetCurrentThreadId()
hHook = SetWindowsHookEx(WH_CALLWNDPROCRET, AddressOf CallWndRetProc, hInst, Thread)
i = MsgBox("Presiona en Aprobar o Rechazar.", vbYesNo)
If i = vbYes Then
Label1 = "Has presionado en Aprobar"
ElseIf i = vbNo Then
Label1 = "Has presionado en Rechazar"
End If
__________________ ホルヘ・ラファエル・マルティネス・レオン |