Procédure pour afficher les WM_***** des messages window
Publié : dim. 20/juil./2008 18:32
J'utilise ce code pour connaitre quel évènement intervient lors de certaines actions sur les gadgets ou fenêtres, utile pour comprendre ce qui se passe et intervenir sur le message qui nous intéresse.
Une liste non exhaustive des messages window qui permettra de faire la correspondance entre la valeur numérique et le message WM_**** associé que l'on pourra mettre à jour.
Le fichier "Event_View.pb":
Un code pour tester:
Une liste non exhaustive des messages window qui permettra de faire la correspondance entre la valeur numérique et le message WM_**** associé que l'on pourra mettre à jour.
Le fichier "Event_View.pb":
Code : Tout sélectionner
Global Event_View.s, NoEvent_View.s
Event_View + "WM_ACTIVATE 0006"
Event_View + "WM_ACTIVATEAPP 001C"
Event_View + "WM_AFXFIRST 0360"
Event_View + "WM_AFXLAST 037F"
Event_View + "WM_APP 8000"
Event_View + "WM_APPCOMMAND 0319"
Event_View + "WM_ASKCBFORMATNAME 030C"
Event_View + "WM_CANCELJOURNAL 004B"
Event_View + "WM_CANCELMODE 01F"
Event_View + "WM_CAPTURECHANGED 0215"
Event_View + "WM_CHANGECBCHAIN 030D"
Event_View + "WM_CHANGEUISTATE 0127"
Event_View + "WM_CHAR 0102"
Event_View + "WM_CHARTOITEM 02F"
Event_View + "WM_CHILDACTIVATE 0022"
Event_View + "WM_CLEAR 0303"
Event_View + "WM_CLOSE 0010"
Event_View + "WM_COMMAND 0111"
Event_View + "WM_COMMNOTIFY 0044"
Event_View + "WM_COMPACTING 0041"
Event_View + "WM_COMPAREITEM 0039"
Event_View + "WM_CONTEXTMENU 007B"
Event_View + "WM_CONVERTREQUEST 010A"
Event_View + "WM_CONVERTREQUESTEX 0108"
Event_View + "WM_CONVERTRESULT 010B"
Event_View + "WM_COPY 0301"
Event_View + "WM_COPYDATA 004A"
Event_View + "WM_CREATE 0001"
Event_View + "WM_CTLCOLOR 0019"
Event_View + "WM_CTLCOLORBTN 0135"
Event_View + "WM_CTLCOLORDLG 0136"
Event_View + "WM_CTLCOLOREDIT 0133"
Event_View + "WM_CTLCOLORLISTBOX 0134"
Event_View + "WM_CTLCOLORMSGBOX 0132"
Event_View + "WM_CTLCOLORSCROLLBAR 0137"
Event_View + "WM_CTLCOLORSTATIC 0138"
Event_View + "WM_CUT 0300"
Event_View + "WM_DDE_ACK 03E4"
Event_View + "WM_DDE_ADVISE 03E2"
Event_View + "WM_DDE_DATA 03E5"
Event_View + "WM_DDE_EXECUTE 03E8"
Event_View + "WM_DDE_FIRST 03E0"
Event_View + "WM_DDE_LAST 03E8"
Event_View + "WM_DDE_POKE 03E7"
Event_View + "WM_DDE_REQUEST 03E6"
Event_View + "WM_DDE_TERMINATE 03E1"
Event_View + "WM_DDE_UNADVISE 03E3"
Event_View + "WM_DEADCHAR 0103"
Event_View + "WM_DELETEITEM 002D"
Event_View + "WM_DESTROY 0002"
Event_View + "WM_DESTROYCLIPBOARD 0307"
Event_View + "WM_DEVICECHANGE 0219"
Event_View + "WM_DEVMODECHANGE 001B"
Event_View + "WM_DISPLAYCHANGE 007E"
Event_View + "WM_DRAWCLIPBOARD 0308"
Event_View + "WM_DRAWITEM 002B"
Event_View + "WM_DROPFILES 0233"
Event_View + "WM_ENABLE 000A"
Event_View + "WM_ENDSESSION 0016"
Event_View + "WM_ENTERIDLE 0121"
Event_View + "WM_ENTERMENULOOP 0211"
Event_View + "WM_ENTERSIZEMOVE 0231"
Event_View + "WM_ERASEBKGND 0014"
Event_View + "WM_EXITMENULOOP 0212"
Event_View + "WM_EXITSIZEMOVE 0232"
Event_View + "WM_FONTCHANGE 001D"
Event_View + "WM_FORWARDMSG 037F"
Event_View + "WM_GETDLGCODE 0087"
Event_View + "WM_GETFONT 0031"
Event_View + "WM_GETHOTKEY 0033"
Event_View + "WM_GETICON 007F"
Event_View + "WM_GETMINMAXINFO 0024"
Event_View + "WM_GETOBJECT 003D"
Event_View + "WM_GETTEXT 000D"
Event_View + "WM_GETTEXTLENGTH 000E"
Event_View + "WM_HANDHELDFIRST 0358"
Event_View + "WM_HANDHELDLAST 035F"
Event_View + "WM_HELP 0053"
Event_View + "WM_HOTKEY 0312"
Event_View + "WM_HSCROLL 0114"
Event_View + "WM_HSCROLLCLIPBOARD 030E"
Event_View + "WM_ICONERASEBKGND 0027"
Event_View + "WM_IME_CHAR 0286"
Event_View + "WM_IME_COMPOSITION 010F"
Event_View + "WM_IME_COMPOSITIONFULL 0284"
Event_View + "WM_IME_CONTROL 0283"
Event_View + "WM_IME_ENDCOMPOSITION 010E"
Event_View + "WM_IME_KEYDOWN 0290"
Event_View + "WM_IME_KEYLAST 010F"
Event_View + "WM_IME_KEYUP 0291"
Event_View + "WM_IME_NOTIFY 0282"
Event_View + "WM_IME_REPORT 0280"
Event_View + "WM_IME_REQUEST 0288"
Event_View + "WM_IME_SELECT 0285"
Event_View + "WM_IME_SETCONTEXT 0281"
Event_View + "WM_IME_STARTCOMPOSITION 010D"
Event_View + "WM_IMEKEYDOWN 0290"
Event_View + "WM_IMEKEYUP 0291"
Event_View + "WM_INITDIALOG 0110"
Event_View + "WM_INITMENU 0116"
Event_View + "WM_INITMENUPOPUP 0117"
Event_View + "WM_INPUTLANGCHANGE 0051"
Event_View + "WM_INPUTLANGCHANGEREQUEST 0050"
Event_View + "WM_INTERIM 010C"
Event_View + "WM_KEYDOWN 0100"
;Event_View + "WM_KEYFIRST 0100" idem que WM_KEYDOWN ?
Event_View + "WM_KEYLAST 0108"
Event_View + "WM_KEYUP 0101"
Event_View + "WM_KILLFOCUS 0008"
Event_View + "WM_LBUTTONDBLCLK 0203"
Event_View + "WM_LBUTTONDOWN 0201"
Event_View + "WM_LBUTTONUP 0202"
Event_View + "WM_MBUTTONDBLCLK 0209"
Event_View + "WM_MBUTTONDOWN 0207"
Event_View + "WM_MBUTTONUP 0208"
Event_View + "WM_MDIACTIVATE 0222"
Event_View + "WM_MDICASCADE 0227"
Event_View + "WM_MDICREATE 0220"
Event_View + "WM_MDIDESTROY 0221"
Event_View + "WM_MDIGETACTIVE 0229"
Event_View + "WM_MDIICONARRANGE 0228"
Event_View + "WM_MDIMAXIMIZE 0225"
Event_View + "WM_MDINEXT 0224"
Event_View + "WM_MDIREFRESHMENU 0234"
Event_View + "WM_MDIRESTORE 0223"
Event_View + "WM_MDISETMENU 0230"
Event_View + "WM_MDITILE 0226"
Event_View + "WM_MEASUREITEM 002C"
Event_View + "WM_MENUCHAR 0120"
Event_View + "WM_MENUCOMMAND 0126"
Event_View + "WM_MENUDRAG 0123"
Event_View + "WM_MENUGETOBJECT 0124"
Event_View + "WM_MENURBUTTONUP 0122"
Event_View + "WM_MENUSELECT 011F"
Event_View + "WM_MOUSEACTIVATE 0021"
;Event_View + "WM_MOUSEFIRST 0200" idem que WM_MOUSEMOVE ?
Event_View + "WM_MOUSEHOVER 02A1"
Event_View + "WM_MOUSELAST 0209"
Event_View + "WM_MOUSELEAVE 02A3"
Event_View + "WM_MOUSEMOVE 0200"
Event_View + "WM_MOUSEWHEEL 020A"
Event_View + "WM_MOVE 0003"
Event_View + "WM_MOVING 0216"
Event_View + "WM_NCACTIVATE 0086"
Event_View + "WM_NCCALCSIZE 0083"
Event_View + "WM_NCCREATE 0081"
Event_View + "WM_NCDESTROY 0082"
Event_View + "WM_NCHITTEST 0084"
Event_View + "WM_NCLBUTTONDBLCLK 00A3"
Event_View + "WM_NCLBUTTONDOWN 00A1"
Event_View + "WM_NCLBUTTONUP 00A2"
Event_View + "WM_NCMBUTTONDBLCLK 00A9"
Event_View + "WM_NCMBUTTONDOWN 00A7"
Event_View + "WM_NCMBUTTONUP 00A8"
Event_View + "WM_NCMOUSEHOVER 02A0"
Event_View + "WM_NCMOUSELEAVE 02A2"
Event_View + "WM_NCPAINT 0085"
Event_View + "WM_NCRBUTTONDBLCLK 00A6"
Event_View + "WM_NCRBUTTONDOWN 00A4"
Event_View + "WM_NCRBUTTONUP 00A5"
Event_View + "WM_NCXBUTTONDBLCLK 00AD"
Event_View + "WM_NCXBUTTONDOWN 00AB"
Event_View + "WM_NCXBUTTONUP 00AC"
Event_View + "WM_NEXTDLGCTL 0028"
Event_View + "WM_NEXTMENU 0213"
Event_View + "WM_NOTIFY 004E"
Event_View + "WM_NOTIFYFORMAT 0055"
Event_View + "WM_NULL 0000"
Event_View + "WM_OTHERWINDOWCREATED 0042"
Event_View + "WM_OTHERWINDOWDESTROYED 0043"
Event_View + "WM_PAINT 000F"
Event_View + "WM_PAINTCLIPBOARD 0309"
Event_View + "WM_PAINTICON 0026"
Event_View + "WM_PALETTECHANGED 0311"
Event_View + "WM_PALETTEISCHANGING 0310"
Event_View + "WM_PARENTNOTIFY 0210"
Event_View + "WM_PASTE 0302"
Event_View + "WM_PENWINFIRST 0380"
Event_View + "WM_PENWINLAST 038F"
Event_View + "WM_POWER 0048"
Event_View + "WM_POWERBROADCAST 0218"
Event_View + "WM_PRINT 0317"
Event_View + "WM_PRINTCLIENT 0318"
Event_View + "WM_QUERYDRAGICON 0037"
Event_View + "WM_QUERYENDSESSION 0011"
Event_View + "WM_QUERYNEWPALETTE 030F"
Event_View + "WM_QUERYOPEN 0013"
Event_View + "WM_QUERYUISTATE 0129"
Event_View + "WM_QUEUESYNC 0023"
Event_View + "WM_QUIT 0012"
Event_View + "WM_RASDIALEVENT CCCD"
Event_View + "WM_RBUTTONDBLCLK 0206"
Event_View + "WM_RBUTTONDOWN 0204"
Event_View + "WM_RBUTTONUP 0205"
Event_View + "WM_RENDERALLFORMATS 0306"
Event_View + "WM_RENDERFORMAT 0305"
Event_View + "WM_SETCURSOR 0020"
Event_View + "WM_SETFOCUS 0007"
Event_View + "WM_SETFONT 0030"
Event_View + "WM_SETHOTKEY 0032"
Event_View + "WM_SETICON 0080"
Event_View + "WM_SETREDRAW 000B"
Event_View + "WM_SETTEXT 000C"
Event_View + "WM_SHOWWINDOW 0018"
Event_View + "WM_SIZE 0005"
Event_View + "WM_SIZECLIPBOARD 030B"
Event_View + "WM_SIZING 0214"
Event_View + "WM_SPOOLERSTATUS 002A"
Event_View + "WM_STYLECHANGED 007D"
Event_View + "WM_STYLECHANGING 007C"
Event_View + "WM_SYNCPAINT 0088"
Event_View + "WM_SYSCHAR 0106"
Event_View + "WM_SYSCOLORCHANGE 0015"
Event_View + "WM_SYSCOMMAND 0112"
Event_View + "WM_SYSDEADCHAR 0107"
Event_View + "WM_SYSKEYDOWN 0104"
Event_View + "WM_SYSKEYUP 0105"
Event_View + "WM_TCARD 0052"
Event_View + "WM_TIMECHANGE 001E"
Event_View + "WM_TIMER 0113"
Event_View + "WM_UNDO 0304"
Event_View + "WM_UNINITMENUPOPUP 0125"
Event_View + "WM_UPDATEUISTATE 0128"
Event_View + "WM_USER 0400"
Event_View + "WM_USERCHANGED 0054"
Event_View + "WM_VKEYTOITEM 002E"
Event_View + "WM_VSCROLL 0115"
Event_View + "WM_VSCROLLCLIPBOARD 030A"
Event_View + "WM_WINDOWPOSCHANGED 0047"
Event_View + "WM_WINDOWPOSCHANGING 0046"
Event_View + "WM_WININICHANGE 001A"
Event_View + "WM_WNT_CONVERTREQUESTEX 0109"
Event_View + "WM_XBUTTONDBLCLK 020D"
Event_View + "WM_XBUTTONDOWN 020B"
Event_View + "WM_XBUTTONUP 020C"
Procedure RemoveEvent(RemoveMessage.s)
NoEvent_View = NoEvent_View + RemoveMessage + " "
EndProcedure
Procedure.l ViewEvent(Number.l)
Protected Message.s, NumberHex.s
NumberHex = RSet(Hex(number), 4, "0")
PositionDepart = FindString(Event_View, NumberHex, 1)
If PositionDepart
Message = Mid(Event_View, PositionDepart-26, 25)
Message = RTrim(Message)
If FindString(NoEvent_View, Message, 1) = 0
Debug Message
ProcedureReturn 1
Else
ProcedureReturn 0
EndIf
EndIf
Debug "Message Inconnu= " + NumberHex
ProcedureReturn 1
EndProcedure
Un code pour tester:
Code : Tout sélectionner
CompilerIf #PB_Compiler_Debugger
IncludeFile : "Event_View.pb"
CompilerEndIf
Procedure WinCallback(hWnd, uMsg, wParam, lParam)
CompilerIf #PB_Compiler_Debugger
ViewEvent(uMsg)
CompilerEndIf
If uMsg = #WM_SIZE
Select wParam
Case #SIZE_MINIMIZED
Debug "La fenêtre est minimisée"
Case #SIZE_RESTORED
Debug "La fenêtre est rétablie"
Case #SIZE_MAXIMIZED
Debug "La fenêtre est agrandie"
EndSelect
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(0, 0, 0, 200, 100, "Messages", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
CompilerIf #PB_Compiler_Debugger
; Cette fonction permet de supprimer de notre liste certains messages
; que l'on connait ou qui reviennent trop souvent
RemoveEvent("WM_MOUSEMOVE WM_NCMOUSEMOVE WM_SETCURSOR")
CompilerEndIf
SetWindowCallback(@WinCallback())
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndIf