All about Window messages

(Share Your Knowledge)

All about Window messages

Unread postby Gerome » Thu Oct 01, 2009 11:17 am

Hello,

Here's a simple script that will expose you the windows messages that can be captured from within an FBSL Form.
This script can be very handy to verbose the very messages that are used.

Code: Select all
#AppType CONSOLE
#Option Strict

#Define WM_ACTIVATE 0x0006
#Define WM_ACTIVATEAPP 0x001C
#Define WM_AFXFIRST 0x0360
#Define WM_AFXLAST 0x037F
#Define WM_APP 0x8000
#Define WM_APPCOMMAND 0x0319
#Define WM_ASKCBFORMATNAME 0x030C
#Define WM_CANCELJOURNAL 0x004B
#Define WM_CANCELMODE 0x001F
#Define WM_CAPTURECHANGED 0x0215
#Define WM_CHANGECBCHAIN 0x030D
#Define WM_CHANGEUISTATE 0x0127
#Define WM_CHAR 0x0102
#Define WM_CHARTOITEM 0x002F
#Define WM_CHILDACTIVATE 0x0022
#Define WM_CLEAR 0x0303
#Define WM_CLOSE 0x0010
#Define WM_COMMAND 0x0111
#Define WM_COMMNOTIFY 0x0044
#Define WM_COMPACTING 0x0041
#Define WM_COMPAREITEM 0x0039
#Define WM_CONTEXTMENU 0x007B
#Define WM_COPY 0x0301
#Define WM_COPYDATA 0x004A
#Define WM_CREATE 0x0001
#Define WM_CTLCOLORBTN 0x0135
#Define WM_CTLCOLORDLG 0x0136
#Define WM_CTLCOLOREDIT 0x0133
#Define WM_CTLCOLORLISTBOX 0x0134
#Define WM_CTLCOLORMSGBOX 0x0132
#Define WM_CTLCOLORSCROLLBAR 0x0137
#Define WM_CTLCOLORSTATIC 0x0138
#Define WM_CUT 0x0300
#Define WM_DEADCHAR 0x0103
#Define WM_DELETEITEM 0x002D
#Define WM_DESTROY 0x0002
#Define WM_DESTROYCLIPBOARD 0x0307
#Define WM_DEVICECHANGE 0x0219
#Define WM_DEVMODECHANGE 0x001B
#Define WM_DISPLAYCHANGE 0x007E
#Define WM_DRAWCLIPBOARD 0x0308
#Define WM_DRAWITEM 0x002B
#Define WM_DROPFILES 0x0233
#Define WM_ENABLE 0x000A
#Define WM_ENDSESSION 0x0016
#Define WM_ENTERIDLE 0x0121
#Define WM_ENTERMENULOOP 0x0211
#Define WM_ENTERSIZEMOVE 0x0231
#Define WM_ERASEBKGND 0x0014
#Define WM_EXITMENULOOP 0x0212
#Define WM_EXITSIZEMOVE 0x0232
#Define WM_FONTCHANGE 0x001D
#Define WM_GETDLGCODE 0x0087
#Define WM_GETFONT 0x0031
#Define WM_GETHOTKEY 0x0033
#Define WM_GETICON 0x007F
#Define WM_GETMINMAXINFO 0x0024
#Define WM_GETOBJECT 0x003D
#Define WM_GETTEXT 0x000D
#Define WM_GETTEXTLENGTH 0x000E
#Define WM_HANDHELDFIRST 0x0358
#Define WM_HANDHELDLAST 0x035F
#Define WM_HELP 0x0053
#Define WM_HOTKEY 0x0312
#Define WM_HSCROLL 0x0114
#Define WM_HSCROLLCLIPBOARD 0x030E
#Define WM_ICONERASEBKGND 0x0027
#Define WM_IME_CHAR 0x0286
#Define WM_IME_COMPOSITION 0x010F
#Define WM_IME_COMPOSITIONFULL 0x0284
#Define WM_IME_CONTROL 0x0283
#Define WM_IME_ENDCOMPOSITION 0x010E
#Define WM_IME_KEYDOWN 0x0290
#Define WM_IME_KEYLAST 0x010F
#Define WM_IME_KEYUP 0x0291
#Define WM_IME_NOTIFY 0x0282
#Define WM_IME_REQUEST 0x0288
#Define WM_IME_SELECT 0x0285
#Define WM_IME_SETCONTEXT 0x0281
#Define WM_IME_STARTCOMPOSITION 0x010D
#Define WM_INITDIALOG 0x0110
#Define WM_INITMENU 0x0116
#Define WM_INITMENUPOPUP 0x0117
#Define WM_INPUT 0x00FF
#Define WM_INPUTLANGCHANGE 0x0051
#Define WM_INPUTLANGCHANGEREQUEST 0x0050
#Define WM_KEYDOWN 0x0100
#Define WM_KEYFIRST 0x0100
#Define WM_KEYLAST 0x0108
#Define WM_KEYLAST 0x0109
#Define WM_KEYUP 0x0101
#Define WM_KILLFOCUS 0x0008
#Define WM_LBUTTONDBLCLK 0x0203
#Define WM_LBUTTONDOWN 0x0201
#Define WM_LBUTTONUP 0x0202
#Define WM_MBUTTONDBLCLK 0x0209
#Define WM_MBUTTONDOWN 0x0207
#Define WM_MBUTTONUP 0x0208
#Define WM_MDIACTIVATE 0x0222
#Define WM_MDICASCADE 0x0227
#Define WM_MDICREATE 0x0220
#Define WM_MDIDESTROY 0x0221
#Define WM_MDIGETACTIVE 0x0229
#Define WM_MDIICONARRANGE 0x0228
#Define WM_MDIMAXIMIZE 0x0225
#Define WM_MDINEXT 0x0224
#Define WM_MDIREFRESHMENU 0x0234
#Define WM_MDIRESTORE 0x0223
#Define WM_MDISETMENU 0x0230
#Define WM_MDITILE 0x0226
#Define WM_MEASUREITEM 0x002C
#Define WM_MENUCHAR 0x0120
#Define WM_MENUCOMMAND 0x0126
#Define WM_MENUDRAG 0x0123
#Define WM_MENUGETOBJECT 0x0124
#Define WM_MENURBUTTONUP 0x0122
#Define WM_MENUSELECT 0x011F
#Define WM_MOUSEACTIVATE 0x0021
#Define WM_MOUSEFIRST 0x0200
#Define WM_MOUSEHOVER 0x02A1
'#Define WM_MOUSELAST(2K,XP,2k3) 0x020D
'#Define WM_MOUSELAST(95) 0x0209
'#Define WM_MOUSELAST(NT4,98) 0x020A
#Define WM_MOUSELAST 0x020D
#Define WM_MOUSELEAVE 0x02A3
#Define WM_MOUSEMOVE 0x0200
#Define WM_MOUSEWHEEL 0x020A
#Define WM_MOVE 0x0003
#Define WM_MOVING 0x0216
#Define WM_NCACTIVATE 0x0086
#Define WM_NCCALCSIZE 0x0083
#Define WM_NCCREATE 0x0081
#Define WM_NCDESTROY 0x0082
#Define WM_NCHITTEST 0x0084
#Define WM_NCLBUTTONDBLCLK 0x00A3
#Define WM_NCLBUTTONDOWN 0x00A1
#Define WM_NCLBUTTONUP 0x00A2
#Define WM_NCMBUTTONDBLCLK 0x00A9
#Define WM_NCMBUTTONDOWN 0x00A7
#Define WM_NCMBUTTONUP 0x00A8
#Define WM_NCMOUSEHOVER 0x02A0
#Define WM_NCMOUSELEAVE 0x02A2
#Define WM_NCMOUSEMOVE 0x00A0
#Define WM_NCPAINT 0x0085
#Define WM_NCRBUTTONDBLCLK 0x00A6
#Define WM_NCRBUTTONDOWN 0x00A4
#Define WM_NCRBUTTONUP 0x00A5
#Define WM_NCXBUTTONDBLCLK 0x00AD
#Define WM_NCXBUTTONDOWN 0x00AB
#Define WM_NCXBUTTONUP 0x00AC
#Define WM_NEXTDLGCTL 0x0028
#Define WM_NEXTMENU 0x0213
#Define WM_NOTIFY 0x004E
#Define WM_NOTIFYFORMAT 0x0055
#Define WM_NULL 0x0000
#Define WM_PAINT 0x000F
#Define WM_PAINTCLIPBOARD 0x0309
#Define WM_PAINTICON 0x0026
#Define WM_PALETTECHANGED 0x0311
#Define WM_PALETTEISCHANGING 0x0310
#Define WM_PARENTNOTIFY 0x0210
#Define WM_PASTE 0x0302
#Define WM_PENWINFIRST 0x0380
#Define WM_PENWINLAST 0x038F
#Define WM_POWER 0x0048
#Define WM_POWERBROADCAST 0x0218
#Define WM_PRINT 0x0317
#Define WM_PRINTCLIENT 0x0318
#Define WM_QUERYDRAGICON 0x0037
#Define WM_QUERYENDSESSION 0x0011
#Define WM_QUERYNEWPALETTE 0x030F
#Define WM_QUERYOPEN 0x0013
#Define WM_QUERYUISTATE 0x0129
#Define WM_QUEUESYNC 0x0023
#Define WM_QUIT 0x0012
#Define WM_RBUTTONDBLCLK 0x0206
#Define WM_RBUTTONDOWN 0x0204
#Define WM_RBUTTONUP 0x0205
#Define WM_RENDERALLFORMATS 0x0306
#Define WM_RENDERFORMAT 0x0305
#Define WM_SETCURSOR 0x0020
#Define WM_SETFOCUS 0x0007
#Define WM_SETFONT 0x0030
#Define WM_SETHOTKEY 0x0032
#Define WM_SETICON 0x0080
#Define WM_SETREDRAW 0x000B
#Define WM_SETTEXT 0x000C
#Define WM_SETTINGCHANGE 0x001A
#Define WM_SHOWWINDOW 0x0018
#Define WM_SIZE 0x0005
#Define WM_SIZECLIPBOARD 0x030B
#Define WM_SIZING 0x0214
#Define WM_SPOOLERSTATUS 0x002A
#Define WM_STYLECHANGED 0x007D
#Define WM_STYLECHANGING 0x007C
#Define WM_SYNCPAINT 0x0088
#Define WM_SYSCHAR 0x0106
#Define WM_SYSCOLORCHANGE 0x0015
#Define WM_SYSCOMMAND 0x0112
#Define WM_SYSDEADCHAR 0x0107
#Define WM_SYSKEYDOWN 0x0104
#Define WM_SYSKEYUP 0x0105
#Define WM_TABLET_FIRST 0x02C0
#Define WM_TABLET_LAST 0x02DF
#Define WM_TCARD 0x0052
#Define WM_THEMECHANGED 0x031A
#Define WM_TIMECHANGE 0x001E
#Define WM_TIMER 0x0113
#Define WM_UNDO 0x0304
#Define WM_UNICHAR 0x0109
#Define WM_UNINITMENUPOPUP 0x0125
#Define WM_UPDATEUISTATE 0x0128
#Define WM_USER 0x0400
#Define WM_USERCHANGED 0x0054
#Define WM_VKEYTOITEM 0x002E
#Define WM_VSCROLL 0x0115
#Define WM_VSCROLLCLIPBOARD 0x030A
#Define WM_WINDOWPOSCHANGED 0x0047
#Define WM_WINDOWPOSCHANGING 0x0046
#Define WM_WININICHANGE 0x001A
#Define WM_WTSSESSION_CHANGE 0x02B1
#Define WM_XBUTTONDBLCLK 0x020D
#Define WM_XBUTTONDOWN 0x020B
#Define WM_XBUTTONUP 0x020C
#Define WM_NULL 0x0000
#Define WM_CREATE 0x0001
#Define WM_DESTROY 0x0002
#Define WM_MOVE 0x0003
#Define WM_SIZE 0x0005
#Define WM_ACTIVATE 0x0006
#Define WM_SETFOCUS 0x0007
#Define WM_KILLFOCUS 0x0008
#Define WM_ENABLE 0x000A
#Define WM_SETREDRAW 0x000B
#Define WM_SETTEXT 0x000C
#Define WM_GETTEXT 0x000D
#Define WM_GETTEXTLENGTH 0x000E
#Define WM_PAINT 0x000F
#Define WM_CLOSE 0x0010
#Define WM_QUERYENDSESSION 0x0011
#Define WM_QUERYOPEN 0x0013
#Define WM_ENDSESSION 0x0016
#Define WM_QUIT 0x0012
#Define WM_ERASEBKGND 0x0014
#Define WM_SYSCOLORCHANGE 0x0015
#Define WM_SHOWWINDOW 0x0018
#Define WM_WININICHANGE 0x001A
#Define WM_SETTINGCHANGE 0x001A
#Define WM_DEVMODECHANGE 0x001B
#Define WM_ACTIVATEAPP 0x001C
#Define WM_FONTCHANGE 0x001D
#Define WM_TIMECHANGE 0x001E
#Define WM_CANCELMODE 0x001F
#Define WM_SETCURSOR 0x0020
#Define WM_MOUSEACTIVATE 0x0021
#Define WM_CHILDACTIVATE 0x0022
#Define WM_QUEUESYNC 0x0023
#Define WM_GETMINMAXINFO 0x0024
#Define WM_PAINTICON 0x0026
#Define WM_ICONERASEBKGND 0x0027
#Define WM_NEXTDLGCTL 0x0028
#Define WM_SPOOLERSTATUS 0x002A
#Define WM_DRAWITEM 0x002B
#Define WM_MEASUREITEM 0x002C
#Define WM_DELETEITEM 0x002D
#Define WM_VKEYTOITEM 0x002E
#Define WM_CHARTOITEM 0x002F
#Define WM_SETFONT 0x0030
#Define WM_GETFONT 0x0031
#Define WM_SETHOTKEY 0x0032
#Define WM_GETHOTKEY 0x0033
#Define WM_QUERYDRAGICON 0x0037
#Define WM_COMPAREITEM 0x0039
#Define WM_GETOBJECT 0x003D
#Define WM_COMPACTING 0x0041
#Define WM_COMMNOTIFY 0x0044
#Define WM_WINDOWPOSCHANGING 0x0046
#Define WM_WINDOWPOSCHANGED 0x0047
#Define WM_POWER 0x0048
#Define WM_COPYDATA 0x004A
#Define WM_CANCELJOURNAL 0x004B
#Define WM_NOTIFY 0x004E
#Define WM_INPUTLANGCHANGEREQUEST 0x0050
#Define WM_INPUTLANGCHANGE 0x0051
#Define WM_TCARD 0x0052
#Define WM_HELP 0x0053
#Define WM_USERCHANGED 0x0054
#Define WM_NOTIFYFORMAT 0x0055
#Define WM_CONTEXTMENU 0x007B
#Define WM_STYLECHANGING 0x007C
#Define WM_STYLECHANGED 0x007D
#Define WM_DISPLAYCHANGE 0x007E
#Define WM_GETICON 0x007F
#Define WM_SETICON 0x0080
#Define WM_NCCREATE 0x0081
#Define WM_NCDESTROY 0x0082
#Define WM_NCCALCSIZE 0x0083
#Define WM_NCHITTEST 0x0084
#Define WM_NCPAINT 0x0085
#Define WM_NCACTIVATE 0x0086
#Define WM_GETDLGCODE 0x0087
#Define WM_SYNCPAINT 0x0088
#Define WM_NCMOUSEMOVE 0x00A0
#Define WM_NCLBUTTONDOWN 0x00A1
#Define WM_NCLBUTTONUP 0x00A2
#Define WM_NCLBUTTONDBLCLK 0x00A3
#Define WM_NCRBUTTONDOWN 0x00A4
#Define WM_NCRBUTTONUP 0x00A5
#Define WM_NCRBUTTONDBLCLK 0x00A6
#Define WM_NCMBUTTONDOWN 0x00A7
#Define WM_NCMBUTTONUP 0x00A8
#Define WM_NCMBUTTONDBLCLK 0x00A9
#Define WM_NCXBUTTONDOWN 0x00AB
#Define WM_NCXBUTTONUP 0x00AC
#Define WM_NCXBUTTONDBLCLK 0x00AD
#Define WM_INPUT 0x00FF
#Define WM_KEYFIRST 0x0100
#Define WM_KEYDOWN 0x0100
#Define WM_KEYUP 0x0101
#Define WM_CHAR 0x0102
#Define WM_DEADCHAR 0x0103
#Define WM_SYSKEYDOWN 0x0104
#Define WM_SYSKEYUP 0x0105
#Define WM_SYSCHAR 0x0106
#Define WM_SYSDEADCHAR 0x0107
#Define WM_UNICHAR 0x0109
#Define WM_KEYLAST 0x0109
#Define WM_KEYLAST 0x0108
#Define WM_IME_STARTCOMPOSITION 0x010D
#Define WM_IME_ENDCOMPOSITION 0x010E
#Define WM_IME_COMPOSITION 0x010F
#Define WM_IME_KEYLAST 0x010F
#Define WM_INITDIALOG 0x0110
#Define WM_COMMAND 0x0111
#Define WM_SYSCOMMAND 0x0112
#Define WM_TIMER 0x0113
#Define WM_HSCROLL 0x0114
#Define WM_VSCROLL 0x0115
#Define WM_INITMENU 0x0116
#Define WM_INITMENUPOPUP 0x0117
#Define WM_MENUSELECT 0x011F
#Define WM_MENUCHAR 0x0120
#Define WM_ENTERIDLE 0x0121
#Define WM_MENURBUTTONUP 0x0122
#Define WM_MENUDRAG 0x0123
#Define WM_MENUGETOBJECT 0x0124
#Define WM_UNINITMENUPOPUP 0x0125
#Define WM_MENUCOMMAND 0x0126
#Define WM_CHANGEUISTATE 0x0127
#Define WM_UPDATEUISTATE 0x0128
#Define WM_QUERYUISTATE 0x0129
#Define WM_CTLCOLORMSGBOX 0x0132
#Define WM_CTLCOLOREDIT 0x0133
#Define WM_CTLCOLORLISTBOX 0x0134
#Define WM_CTLCOLORBTN 0x0135
#Define WM_CTLCOLORDLG 0x0136
#Define WM_CTLCOLORSCROLLBAR 0x0137
#Define WM_CTLCOLORSTATIC 0x0138
#Define WM_MOUSEFIRST 0x0200
#Define WM_MOUSEMOVE 0x0200
#Define WM_LBUTTONDOWN 0x0201
#Define WM_LBUTTONUP 0x0202
#Define WM_LBUTTONDBLCLK 0x0203
#Define WM_RBUTTONDOWN 0x0204
#Define WM_RBUTTONUP 0x0205
#Define WM_RBUTTONDBLCLK 0x0206
#Define WM_MBUTTONDOWN 0x0207
#Define WM_MBUTTONUP 0x0208
#Define WM_MBUTTONDBLCLK 0x0209
#Define WM_MOUSEWHEEL 0x020A
#Define WM_XBUTTONDOWN 0x020B
#Define WM_XBUTTONUP 0x020C
#Define WM_XBUTTONDBLCLK 0x020D
#Define WM_PARENTNOTIFY 0x0210
#Define WM_ENTERMENULOOP 0x0211
#Define WM_EXITMENULOOP 0x0212
#Define WM_NEXTMENU 0x0213
#Define WM_SIZING 0x0214
#Define WM_CAPTURECHANGED 0x0215
#Define WM_MOVING 0x0216
#Define WM_POWERBROADCAST 0x0218
#Define WM_DEVICECHANGE 0x0219
#Define WM_MDICREATE 0x0220
#Define WM_MDIDESTROY 0x0221
#Define WM_MDIACTIVATE 0x0222
#Define WM_MDIRESTORE 0x0223
#Define WM_MDINEXT 0x0224
#Define WM_MDIMAXIMIZE 0x0225
#Define WM_MDITILE 0x0226
#Define WM_MDICASCADE 0x0227
#Define WM_MDIICONARRANGE 0x0228
#Define WM_MDIGETACTIVE 0x0229
#Define WM_MDISETMENU 0x0230
#Define WM_ENTERSIZEMOVE 0x0231
#Define WM_EXITSIZEMOVE 0x0232
#Define WM_DROPFILES 0x0233
#Define WM_MDIREFRESHMENU 0x0234
#Define WM_IME_SETCONTEXT 0x0281
#Define WM_IME_NOTIFY 0x0282
#Define WM_IME_CONTROL 0x0283
#Define WM_IME_COMPOSITIONFULL 0x0284
#Define WM_IME_SELECT 0x0285
#Define WM_IME_CHAR 0x0286
#Define WM_IME_REQUEST 0x0288
#Define WM_IME_KEYDOWN 0x0290
#Define WM_IME_KEYUP 0x0291
#Define WM_MOUSEHOVER 0x02A1
#Define WM_MOUSELEAVE 0x02A3
#Define WM_NCMOUSEHOVER 0x02A0
#Define WM_NCMOUSELEAVE 0x02A2
#Define WM_WTSSESSION_CHANGE 0x02B1
#Define WM_TABLET_FIRST 0x02C0
#Define WM_TABLET_LAST 0x02DF
#Define WM_CUT 0x0300
#Define WM_COPY 0x0301
#Define WM_PASTE 0x0302
#Define WM_CLEAR 0x0303
#Define WM_UNDO 0x0304
#Define WM_RENDERFORMAT 0x0305
#Define WM_RENDERALLFORMATS 0x0306
#Define WM_DESTROYCLIPBOARD 0x0307
#Define WM_DRAWCLIPBOARD 0x0308
#Define WM_PAINTCLIPBOARD 0x0309
#Define WM_VSCROLLCLIPBOARD 0x030A
#Define WM_SIZECLIPBOARD 0x030B
#Define WM_ASKCBFORMATNAME 0x030C
#Define WM_CHANGECBCHAIN 0x030D
#Define WM_HSCROLLCLIPBOARD 0x030E
#Define WM_QUERYNEWPALETTE 0x030F
#Define WM_PALETTEISCHANGING 0x0310
#Define WM_PALETTECHANGED 0x0311
#Define WM_HOTKEY 0x0312
#Define WM_PRINT 0x0317
#Define WM_PRINTCLIENT 0x0318
#Define WM_APPCOMMAND 0x0319
#Define WM_THEMECHANGED 0x031A
#Define WM_HANDHELDFIRST 0x0358
#Define WM_HANDHELDLAST 0x035F
#Define WM_AFXFIRST 0x0360
#Define WM_AFXLAST 0x037F
#Define WM_PENWINFIRST 0x0380
#Define WM_PENWINLAST 0x038F
#Define WM_USER 0x0400
#Define WM_APP 0x8000

Center(Me)
Show(Me)

Begin Events
   Select Case CBMSG
      Case WM_ACTIVATE
         ? "Msg == WM_ACTIVATE"
      Case WM_ACTIVATEAPP
         ? "Msg == WM_ACTIVATEAPP"
      Case WM_AFXFIRST
         ? "Msg == WM_AFXFIRST"
      Case WM_AFXLAST
         ? "Msg == WM_AFXLAST"
      Case WM_APP
         ? "Msg == WM_APP"
      Case WM_APPCOMMAND
         ? "Msg == WM_APPCOMMAND"
      Case WM_ASKCBFORMATNAME
         ? "Msg == WM_ASKCBFORMATNAME"
      Case WM_CANCELJOURNAL
         ? "Msg == WM_CANCELJOURNAL"
      Case WM_CANCELMODE
         ? "Msg == WM_CANCELMODE"
      Case WM_CAPTURECHANGED
         ? "Msg == WM_CAPTURECHANGED"
      Case WM_CHANGECBCHAIN
         ? "Msg == WM_CHANGECBCHAIN"
      Case WM_CHANGEUISTATE
         ? "Msg == WM_CHANGEUISTATE"
      Case WM_CHAR
         ? "Msg == WM_CHAR"
      Case WM_CHARTOITEM
         ? "Msg == WM_CHARTOITEM"
      Case WM_CHILDACTIVATE
         ? "Msg == WM_CHILDACTIVATE"
      Case WM_CLEAR
         ? "Msg == WM_CLEAR"
      Case WM_CLOSE
         ? "Msg == WM_CLOSE"
      Case WM_COMMAND
         ? "Msg == WM_COMMAND"
      Case WM_COMMNOTIFY
         ? "Msg == WM_COMMNOTIFY"
      Case WM_COMPACTING
         ? "Msg == WM_COMPACTING"
      Case WM_COMPAREITEM
         ? "Msg == WM_COMPAREITEM"
      Case WM_CONTEXTMENU
         ? "Msg == WM_CONTEXTMENU"
      Case WM_COPY
         ? "Msg == WM_COPY"
      Case WM_COPYDATA
         ? "Msg == WM_COPYDATA"
      Case WM_CREATE
         ? "Msg == WM_CREATE"
      Case WM_CTLCOLORBTN
         ? "Msg == WM_CTLCOLORBTN"
      Case WM_CTLCOLORDLG
         ? "Msg == WM_CTLCOLORDLG"
      Case WM_CTLCOLOREDIT
         ? "Msg == WM_CTLCOLOREDIT"
      Case WM_CTLCOLORLISTBOX
         ? "Msg == WM_CTLCOLORLISTBOX"
      Case WM_CTLCOLORMSGBOX
         ? "Msg == WM_CTLCOLORMSGBOX"
      Case WM_CTLCOLORSCROLLBAR
         ? "Msg == WM_CTLCOLORSCROLLBAR"
      Case WM_CTLCOLORSTATIC
         ? "Msg == WM_CTLCOLORSTATIC"
      Case WM_CUT
         ? "Msg == WM_CUT"
      Case WM_DEADCHAR
         ? "Msg == WM_DEADCHAR"
      Case WM_DELETEITEM
         ? "Msg == WM_DELETEITEM"
      Case WM_DESTROY
         ? "Msg == WM_DESTROY"
      Case WM_DESTROYCLIPBOARD
         ? "Msg == WM_DESTROYCLIPBOARD"
      Case WM_DEVICECHANGE
         ? "Msg == WM_DEVICECHANGE"
      Case WM_DEVMODECHANGE
         ? "Msg == WM_DEVMODECHANGE"
      Case WM_DISPLAYCHANGE
         ? "Msg == WM_DISPLAYCHANGE"
      Case WM_DRAWCLIPBOARD
         ? "Msg == WM_DRAWCLIPBOARD"
      Case WM_DRAWITEM
         ? "Msg == WM_DRAWITEM"
      Case WM_DROPFILES
         ? "Msg == WM_DROPFILES"
      Case WM_ENABLE
         ? "Msg == WM_ENABLE"
      Case WM_ENDSESSION
         ? "Msg == WM_ENDSESSION"
      Case WM_ENTERIDLE
         ? "Msg == WM_ENTERIDLE"
      Case WM_ENTERMENULOOP
         ? "Msg == WM_ENTERMENULOOP"
      Case WM_ENTERSIZEMOVE
         ? "Msg == WM_ENTERSIZEMOVE"
      Case WM_ERASEBKGND
         ? "Msg == WM_ERASEBKGND"
      Case WM_EXITMENULOOP
         ? "Msg == WM_EXITMENULOOP"
      Case WM_EXITSIZEMOVE
         ? "Msg == WM_EXITSIZEMOVE"
      Case WM_FONTCHANGE
         ? "Msg == WM_FONTCHANGE"
      Case WM_GETDLGCODE
         ? "Msg == WM_GETDLGCODE"
      Case WM_GETFONT
         ? "Msg == WM_GETFONT"
      Case WM_GETHOTKEY
         ? "Msg == WM_GETHOTKEY"
      Case WM_GETICON
         ? "Msg == WM_GETICON"
      Case WM_GETMINMAXINFO
         ? "Msg == WM_GETMINMAXINFO"
      Case WM_GETOBJECT
         ? "Msg == WM_GETOBJECT"
      Case WM_GETTEXT
         ? "Msg == WM_GETTEXT"
      Case WM_GETTEXTLENGTH
         ? "Msg == WM_GETTEXTLENGTH"
      Case WM_HANDHELDFIRST
         ? "Msg == WM_HANDHELDFIRST"
      Case WM_HANDHELDLAST
         ? "Msg == WM_HANDHELDLAST"
      Case WM_HELP
         ? "Msg == WM_HELP"
      Case WM_HOTKEY
         ? "Msg == WM_HOTKEY"
      Case WM_HSCROLL
         ? "Msg == WM_HSCROLL"
      Case WM_HSCROLLCLIPBOARD
         ? "Msg == WM_HSCROLLCLIPBOARD"
      Case WM_ICONERASEBKGND
         ? "Msg == WM_ICONERASEBKGND"
      Case WM_IME_CHAR
         ? "Msg == WM_IME_CHAR"
      Case WM_IME_COMPOSITION
         ? "Msg == WM_IME_COMPOSITION"
      Case WM_IME_COMPOSITIONFULL
         ? "Msg == WM_IME_COMPOSITIONFULL"
      Case WM_IME_CONTROL
         ? "Msg == WM_IME_CONTROL"
      Case WM_IME_ENDCOMPOSITION
         ? "Msg == WM_IME_ENDCOMPOSITION"
      Case WM_IME_KEYDOWN
         ? "Msg == WM_IME_KEYDOWN"
      Case WM_IME_KEYLAST
         ? "Msg == WM_IME_KEYLAST"
      Case WM_IME_KEYUP
         ? "Msg == WM_IME_KEYUP"
      Case WM_IME_NOTIFY
         ? "Msg == WM_IME_NOTIFY"
      Case WM_IME_REQUEST
         ? "Msg == WM_IME_REQUEST"
      Case WM_IME_SELECT
         ? "Msg == WM_IME_SELECT"
      Case WM_IME_SETCONTEXT
         ? "Msg == WM_IME_SETCONTEXT"
      Case WM_IME_STARTCOMPOSITION
         ? "Msg == WM_IME_STARTCOMPOSITION"
      Case WM_INITDIALOG
         ? "Msg == WM_INITDIALOG"
      Case WM_INITMENU
         ? "Msg == WM_INITMENU"
      Case WM_INITMENUPOPUP
         ? "Msg == WM_INITMENUPOPUP"
      Case WM_INPUT
         ? "Msg == WM_INPUT"
      Case WM_INPUTLANGCHANGE
         ? "Msg == WM_INPUTLANGCHANGE"
      Case WM_INPUTLANGCHANGEREQUEST
         ? "Msg == WM_INPUTLANGCHANGEREQUEST"
      Case WM_KEYDOWN
         ? "Msg == WM_KEYDOWN"
      Case WM_KEYFIRST
         ? "Msg == WM_KEYFIRST"
      Case WM_KEYLAST
         ? "Msg == WM_KEYLAST"
      Case WM_KEYLAST
         ? "Msg == WM_KEYLAST"
      Case WM_KEYUP
         ? "Msg == WM_KEYUP"
      Case WM_KILLFOCUS
         ? "Msg == WM_KILLFOCUS"
      Case WM_LBUTTONDBLCLK
         ? "Msg == WM_LBUTTONDBLCLK"
      Case WM_LBUTTONDOWN
         ? "Msg == WM_LBUTTONDOWN"
      Case WM_LBUTTONUP
         ? "Msg == WM_LBUTTONUP"
      Case WM_MBUTTONDBLCLK
         ? "Msg == WM_MBUTTONDBLCLK"
      Case WM_MBUTTONDOWN
         ? "Msg == WM_MBUTTONDOWN"
      Case WM_MBUTTONUP
         ? "Msg == WM_MBUTTONUP"
      Case WM_MDIACTIVATE
         ? "Msg == WM_MDIACTIVATE"
      Case WM_MDICASCADE
         ? "Msg == WM_MDICASCADE"
      Case WM_MDICREATE
         ? "Msg == WM_MDICREATE"
      Case WM_MDIDESTROY
         ? "Msg == WM_MDIDESTROY"
      Case WM_MDIGETACTIVE
         ? "Msg == WM_MDIGETACTIVE"
      Case WM_MDIICONARRANGE
         ? "Msg == WM_MDIICONARRANGE"
      Case WM_MDIMAXIMIZE
         ? "Msg == WM_MDIMAXIMIZE"
      Case WM_MDINEXT
         ? "Msg == WM_MDINEXT"
      Case WM_MDIREFRESHMENU
         ? "Msg == WM_MDIREFRESHMENU"
      Case WM_MDIRESTORE
         ? "Msg == WM_MDIRESTORE"
      Case WM_MDISETMENU
         ? "Msg == WM_MDISETMENU"
      Case WM_MDITILE
         ? "Msg == WM_MDITILE"
      Case WM_MEASUREITEM
         ? "Msg == WM_MEASUREITEM"
      Case WM_MENUCHAR
         ? "Msg == WM_MENUCHAR"
      Case WM_MENUCOMMAND
         ? "Msg == WM_MENUCOMMAND"
      Case WM_MENUDRAG
         ? "Msg == WM_MENUDRAG"
      Case WM_MENUGETOBJECT
         ? "Msg == WM_MENUGETOBJECT"
      Case WM_MENURBUTTONUP
         ? "Msg == WM_MENURBUTTONUP"
      Case WM_MENUSELECT
         ? "Msg == WM_MENUSELECT"
      Case WM_MOUSEACTIVATE
         ? "Msg == WM_MOUSEACTIVATE"
      Case WM_MOUSEFIRST
         ? "Msg == WM_MOUSEFIRST"
      Case WM_MOUSEHOVER
         ? "Msg == WM_MOUSEHOVER"
      Case WM_MOUSELAST
         ? "Msg == WM_MOUSELAST(2K,XP,2k3)"
      Case WM_MOUSELEAVE
         ? "Msg == WM_MOUSELEAVE"
      Case WM_MOUSEMOVE
         ? "Msg == WM_MOUSEMOVE"
      Case WM_MOUSEWHEEL
         ? "Msg == WM_MOUSEWHEEL"
      Case WM_MOVE
         ? "Msg == WM_MOVE"
      Case WM_MOVING
         ? "Msg == WM_MOVING"
      Case WM_NCACTIVATE
         ? "Msg == WM_NCACTIVATE"
      Case WM_NCCALCSIZE
         ? "Msg == WM_NCCALCSIZE"
      Case WM_NCCREATE
         ? "Msg == WM_NCCREATE"
      Case WM_NCDESTROY
         ? "Msg == WM_NCDESTROY"
      Case WM_NCHITTEST
         ? "Msg == WM_NCHITTEST"
      Case WM_NCLBUTTONDBLCLK
         ? "Msg == WM_NCLBUTTONDBLCLK"
      Case WM_NCLBUTTONDOWN
         ? "Msg == WM_NCLBUTTONDOWN"
      Case WM_NCLBUTTONUP
         ? "Msg == WM_NCLBUTTONUP"
      Case WM_NCMBUTTONDBLCLK
         ? "Msg == WM_NCMBUTTONDBLCLK"
      Case WM_NCMBUTTONDOWN
         ? "Msg == WM_NCMBUTTONDOWN"
      Case WM_NCMBUTTONUP
         ? "Msg == WM_NCMBUTTONUP"
      Case WM_NCMOUSEHOVER
         ? "Msg == WM_NCMOUSEHOVER"
      Case WM_NCMOUSELEAVE
         ? "Msg == WM_NCMOUSELEAVE"
      Case WM_NCMOUSEMOVE
         ? "Msg == WM_NCMOUSEMOVE"
      Case WM_NCPAINT
         ? "Msg == WM_NCPAINT"
      Case WM_NCRBUTTONDBLCLK
         ? "Msg == WM_NCRBUTTONDBLCLK"
      Case WM_NCRBUTTONDOWN
         ? "Msg == WM_NCRBUTTONDOWN"
      Case WM_NCRBUTTONUP
         ? "Msg == WM_NCRBUTTONUP"
      Case WM_NCXBUTTONDBLCLK
         ? "Msg == WM_NCXBUTTONDBLCLK"
      Case WM_NCXBUTTONDOWN
         ? "Msg == WM_NCXBUTTONDOWN"
      Case WM_NCXBUTTONUP
         ? "Msg == WM_NCXBUTTONUP"
      Case WM_NEXTDLGCTL
         ? "Msg == WM_NEXTDLGCTL"
      Case WM_NEXTMENU
         ? "Msg == WM_NEXTMENU"
      Case WM_NOTIFY
         ? "Msg == WM_NOTIFY"
      Case WM_NOTIFYFORMAT
         ? "Msg == WM_NOTIFYFORMAT"
      Case WM_NULL
         ? "Msg == WM_NULL"
      Case WM_PAINT
         ? "Msg == WM_PAINT"
      Case WM_PAINTCLIPBOARD
         ? "Msg == WM_PAINTCLIPBOARD"
      Case WM_PAINTICON
         ? "Msg == WM_PAINTICON"
      Case WM_PALETTECHANGED
         ? "Msg == WM_PALETTECHANGED"
      Case WM_PALETTEISCHANGING
         ? "Msg == WM_PALETTEISCHANGING"
      Case WM_PARENTNOTIFY
         ? "Msg == WM_PARENTNOTIFY"
      Case WM_PASTE
         ? "Msg == WM_PASTE"
      Case WM_PENWINFIRST
         ? "Msg == WM_PENWINFIRST"
      Case WM_PENWINLAST
         ? "Msg == WM_PENWINLAST"
      Case WM_POWER
         ? "Msg == WM_POWER"
      Case WM_POWERBROADCAST
         ? "Msg == WM_POWERBROADCAST"
      Case WM_PRINT
         ? "Msg == WM_PRINT"
      Case WM_PRINTCLIENT
         ? "Msg == WM_PRINTCLIENT"
      Case WM_QUERYDRAGICON
         ? "Msg == WM_QUERYDRAGICON"
      Case WM_QUERYENDSESSION
         ? "Msg == WM_QUERYENDSESSION"
      Case WM_QUERYNEWPALETTE
         ? "Msg == WM_QUERYNEWPALETTE"
      Case WM_QUERYOPEN
         ? "Msg == WM_QUERYOPEN"
      Case WM_QUERYUISTATE
         ? "Msg == WM_QUERYUISTATE"
      Case WM_QUEUESYNC
         ? "Msg == WM_QUEUESYNC"
      Case WM_QUIT
         ? "Msg == WM_QUIT"
      Case WM_RBUTTONDBLCLK
         ? "Msg == WM_RBUTTONDBLCLK"
      Case WM_RBUTTONDOWN
         ? "Msg == WM_RBUTTONDOWN"
      Case WM_RBUTTONUP
         ? "Msg == WM_RBUTTONUP"
      Case WM_RENDERALLFORMATS
         ? "Msg == WM_RENDERALLFORMATS"
      Case WM_RENDERFORMAT
         ? "Msg == WM_RENDERFORMAT"
      Case WM_SETCURSOR
         ? "Msg == WM_SETCURSOR"
      Case WM_SETFOCUS
         ? "Msg == WM_SETFOCUS"
      Case WM_SETFONT
         ? "Msg == WM_SETFONT"
      Case WM_SETHOTKEY
         ? "Msg == WM_SETHOTKEY"
      Case WM_SETICON
         ? "Msg == WM_SETICON"
      Case WM_SETREDRAW
         ? "Msg == WM_SETREDRAW"
      Case WM_SETTEXT
         ? "Msg == WM_SETTEXT"
      Case WM_SETTINGCHANGE
         ? "Msg == WM_SETTINGCHANGE"
      Case WM_SHOWWINDOW
         ? "Msg == WM_SHOWWINDOW"
      Case WM_SIZE
         ? "Msg == WM_SIZE"
      Case WM_SIZECLIPBOARD
         ? "Msg == WM_SIZECLIPBOARD"
      Case WM_SIZING
         ? "Msg == WM_SIZING"
      Case WM_SPOOLERSTATUS
         ? "Msg == WM_SPOOLERSTATUS"
      Case WM_STYLECHANGED
         ? "Msg == WM_STYLECHANGED"
      Case WM_STYLECHANGING
         ? "Msg == WM_STYLECHANGING"
      Case WM_SYNCPAINT
         ? "Msg == WM_SYNCPAINT"
      Case WM_SYSCHAR
         ? "Msg == WM_SYSCHAR"
      Case WM_SYSCOLORCHANGE
         ? "Msg == WM_SYSCOLORCHANGE"
      Case WM_SYSCOMMAND
         ? "Msg == WM_SYSCOMMAND"
      Case WM_SYSDEADCHAR
         ? "Msg == WM_SYSDEADCHAR"
      Case WM_SYSKEYDOWN
         ? "Msg == WM_SYSKEYDOWN"
      Case WM_SYSKEYUP
         ? "Msg == WM_SYSKEYUP"
      Case WM_TABLET_FIRST
         ? "Msg == WM_TABLET_FIRST"
      Case WM_TABLET_LAST
         ? "Msg == WM_TABLET_LAST"
      Case WM_TCARD
         ? "Msg == WM_TCARD"
      Case WM_THEMECHANGED
         ? "Msg == WM_THEMECHANGED"
      Case WM_TIMECHANGE
         ? "Msg == WM_TIMECHANGE"
      Case WM_TIMER
         ? "Msg == WM_TIMER"
      Case WM_UNDO
         ? "Msg == WM_UNDO"
      Case WM_UNICHAR
         ? "Msg == WM_UNICHAR"
      Case WM_UNINITMENUPOPUP
         ? "Msg == WM_UNINITMENUPOPUP"
      Case WM_UPDATEUISTATE
         ? "Msg == WM_UPDATEUISTATE"
      Case WM_USER
         ? "Msg == WM_USER"
      Case WM_USERCHANGED
         ? "Msg == WM_USERCHANGED"
      Case WM_VKEYTOITEM
         ? "Msg == WM_VKEYTOITEM"
      Case WM_VSCROLL
         ? "Msg == WM_VSCROLL"
      Case WM_VSCROLLCLIPBOARD
         ? "Msg == WM_VSCROLLCLIPBOARD"
      Case WM_WINDOWPOSCHANGED
         ? "Msg == WM_WINDOWPOSCHANGED"
      Case WM_WINDOWPOSCHANGING
         ? "Msg == WM_WINDOWPOSCHANGING"
      Case WM_WININICHANGE
         ? "Msg == WM_WININICHANGE"
      Case WM_WTSSESSION_CHANGE
         ? "Msg == WM_WTSSESSION_CHANGE"
      Case WM_XBUTTONDBLCLK
         ? "Msg == WM_XBUTTONDBLCLK"
      Case WM_XBUTTONDOWN
         ? "Msg == WM_XBUTTONDOWN"
      Case WM_XBUTTONUP
         ? "Msg == WM_XBUTTONUP"
      Case WM_NULL
         ? "Msg == WM_NULL"
      Case WM_CREATE
         ? "Msg == WM_CREATE"
      Case WM_DESTROY
         ? "Msg == WM_DESTROY"
      Case WM_MOVE
         ? "Msg == WM_MOVE"
      Case WM_SIZE
         ? "Msg == WM_SIZE"
      Case WM_ACTIVATE
         ? "Msg == WM_ACTIVATE"
      Case WM_SETFOCUS
         ? "Msg == WM_SETFOCUS"
      Case WM_KILLFOCUS
         ? "Msg == WM_KILLFOCUS"
      Case WM_ENABLE
         ? "Msg == WM_ENABLE"
      Case WM_SETREDRAW
         ? "Msg == WM_SETREDRAW"
      Case WM_SETTEXT
         ? "Msg == WM_SETTEXT"
      Case WM_GETTEXT
         ? "Msg == WM_GETTEXT"
      Case WM_GETTEXTLENGTH
         ? "Msg == WM_GETTEXTLENGTH"
      Case WM_PAINT
         ? "Msg == WM_PAINT"
      Case WM_CLOSE
         ? "Msg == WM_CLOSE"
      Case WM_QUERYENDSESSION
         ? "Msg == WM_QUERYENDSESSION"
      Case WM_QUERYOPEN
         ? "Msg == WM_QUERYOPEN"
      Case WM_ENDSESSION
         ? "Msg == WM_ENDSESSION"
      Case WM_QUIT
         ? "Msg == WM_QUIT"
      Case WM_ERASEBKGND
         ? "Msg == WM_ERASEBKGND"
      Case WM_SYSCOLORCHANGE
         ? "Msg == WM_SYSCOLORCHANGE"
      Case WM_SHOWWINDOW
         ? "Msg == WM_SHOWWINDOW"
      Case WM_WININICHANGE
         ? "Msg == WM_WININICHANGE"
      Case WM_SETTINGCHANGE
         ? "Msg == WM_SETTINGCHANGE"
      Case WM_DEVMODECHANGE
         ? "Msg == WM_DEVMODECHANGE"
      Case WM_ACTIVATEAPP
         ? "Msg == WM_ACTIVATEAPP"
      Case WM_FONTCHANGE
         ? "Msg == WM_FONTCHANGE"
      Case WM_TIMECHANGE
         ? "Msg == WM_TIMECHANGE"
      Case WM_CANCELMODE
         ? "Msg == WM_CANCELMODE"
      Case WM_SETCURSOR
         ? "Msg == WM_SETCURSOR"
      Case WM_MOUSEACTIVATE
         ? "Msg == WM_MOUSEACTIVATE"
      Case WM_CHILDACTIVATE
         ? "Msg == WM_CHILDACTIVATE"
      Case WM_QUEUESYNC
         ? "Msg == WM_QUEUESYNC"
      Case WM_GETMINMAXINFO
         ? "Msg == WM_GETMINMAXINFO"
      Case WM_PAINTICON
         ? "Msg == WM_PAINTICON"
      Case WM_ICONERASEBKGND
         ? "Msg == WM_ICONERASEBKGND"
      Case WM_NEXTDLGCTL
         ? "Msg == WM_NEXTDLGCTL"
      Case WM_SPOOLERSTATUS
         ? "Msg == WM_SPOOLERSTATUS"
      Case WM_DRAWITEM
         ? "Msg == WM_DRAWITEM"
      Case WM_MEASUREITEM
         ? "Msg == WM_MEASUREITEM"
      Case WM_DELETEITEM
         ? "Msg == WM_DELETEITEM"
      Case WM_VKEYTOITEM
         ? "Msg == WM_VKEYTOITEM"
      Case WM_CHARTOITEM
         ? "Msg == WM_CHARTOITEM"
      Case WM_SETFONT
         ? "Msg == WM_SETFONT"
      Case WM_GETFONT
         ? "Msg == WM_GETFONT"
      Case WM_SETHOTKEY
         ? "Msg == WM_SETHOTKEY"
      Case WM_GETHOTKEY
         ? "Msg == WM_GETHOTKEY"
      Case WM_QUERYDRAGICON
         ? "Msg == WM_QUERYDRAGICON"
      Case WM_COMPAREITEM
         ? "Msg == WM_COMPAREITEM"
      Case WM_GETOBJECT
         ? "Msg == WM_GETOBJECT"
      Case WM_COMPACTING
         ? "Msg == WM_COMPACTING"
      Case WM_COMMNOTIFY
         ? "Msg == WM_COMMNOTIFY"
      Case WM_WINDOWPOSCHANGING
         ? "Msg == WM_WINDOWPOSCHANGING"
      Case WM_WINDOWPOSCHANGED
         ? "Msg == WM_WINDOWPOSCHANGED"
      Case WM_POWER
         ? "Msg == WM_POWER"
      Case WM_COPYDATA
         ? "Msg == WM_COPYDATA"
      Case WM_CANCELJOURNAL
         ? "Msg == WM_CANCELJOURNAL"
      Case WM_NOTIFY
         ? "Msg == WM_NOTIFY"
      Case WM_INPUTLANGCHANGEREQUEST
         ? "Msg == WM_INPUTLANGCHANGEREQUEST"
      Case WM_INPUTLANGCHANGE
         ? "Msg == WM_INPUTLANGCHANGE"
      Case WM_TCARD
         ? "Msg == WM_TCARD"
      Case WM_HELP
         ? "Msg == WM_HELP"
      Case WM_USERCHANGED
         ? "Msg == WM_USERCHANGED"
      Case WM_NOTIFYFORMAT
         ? "Msg == WM_NOTIFYFORMAT"
      Case WM_CONTEXTMENU
         ? "Msg == WM_CONTEXTMENU"
      Case WM_STYLECHANGING
         ? "Msg == WM_STYLECHANGING"
      Case WM_STYLECHANGED
         ? "Msg == WM_STYLECHANGED"
      Case WM_DISPLAYCHANGE
         ? "Msg == WM_DISPLAYCHANGE"
      Case WM_GETICON
         ? "Msg == WM_GETICON"
      Case WM_SETICON
         ? "Msg == WM_SETICON"
      Case WM_NCCREATE
         ? "Msg == WM_NCCREATE"
      Case WM_NCDESTROY
         ? "Msg == WM_NCDESTROY"
      Case WM_NCCALCSIZE
         ? "Msg == WM_NCCALCSIZE"
      Case WM_NCHITTEST
         ? "Msg == WM_NCHITTEST"
      Case WM_NCPAINT
         ? "Msg == WM_NCPAINT"
      Case WM_NCACTIVATE
         ? "Msg == WM_NCACTIVATE"
      Case WM_GETDLGCODE
         ? "Msg == WM_GETDLGCODE"
      Case WM_SYNCPAINT
         ? "Msg == WM_SYNCPAINT"
      Case WM_NCMOUSEMOVE
         ? "Msg == WM_NCMOUSEMOVE"
      Case WM_NCLBUTTONDOWN
         ? "Msg == WM_NCLBUTTONDOWN"
      Case WM_NCLBUTTONUP
         ? "Msg == WM_NCLBUTTONUP"
      Case WM_NCLBUTTONDBLCLK
         ? "Msg == WM_NCLBUTTONDBLCLK"
      Case WM_NCRBUTTONDOWN
         ? "Msg == WM_NCRBUTTONDOWN"
      Case WM_NCRBUTTONUP
         ? "Msg == WM_NCRBUTTONUP"
      Case WM_NCRBUTTONDBLCLK
         ? "Msg == WM_NCRBUTTONDBLCLK"
      Case WM_NCMBUTTONDOWN
         ? "Msg == WM_NCMBUTTONDOWN"
      Case WM_NCMBUTTONUP
         ? "Msg == WM_NCMBUTTONUP"
      Case WM_NCMBUTTONDBLCLK
         ? "Msg == WM_NCMBUTTONDBLCLK"
      Case WM_NCXBUTTONDOWN
         ? "Msg == WM_NCXBUTTONDOWN"
      Case WM_NCXBUTTONUP
         ? "Msg == WM_NCXBUTTONUP"
      Case WM_NCXBUTTONDBLCLK
         ? "Msg == WM_NCXBUTTONDBLCLK"
      Case WM_INPUT
         ? "Msg == WM_INPUT"
      Case WM_KEYFIRST
         ? "Msg == WM_KEYFIRST"
      Case WM_KEYDOWN
         ? "Msg == WM_KEYDOWN"
      Case WM_KEYUP
         ? "Msg == WM_KEYUP"
      Case WM_CHAR
         ? "Msg == WM_CHAR"
      Case WM_DEADCHAR
         ? "Msg == WM_DEADCHAR"
      Case WM_SYSKEYDOWN
         ? "Msg == WM_SYSKEYDOWN"
      Case WM_SYSKEYUP
         ? "Msg == WM_SYSKEYUP"
      Case WM_SYSCHAR
         ? "Msg == WM_SYSCHAR"
      Case WM_SYSDEADCHAR
         ? "Msg == WM_SYSDEADCHAR"
      Case WM_UNICHAR
         ? "Msg == WM_UNICHAR"
      Case WM_KEYLAST
         ? "Msg == WM_KEYLAST"
      Case WM_KEYLAST
         ? "Msg == WM_KEYLAST"
      Case WM_IME_STARTCOMPOSITION
         ? "Msg == WM_IME_STARTCOMPOSITION"
      Case WM_IME_ENDCOMPOSITION
         ? "Msg == WM_IME_ENDCOMPOSITION"
      Case WM_IME_COMPOSITION
         ? "Msg == WM_IME_COMPOSITION"
      Case WM_IME_KEYLAST
         ? "Msg == WM_IME_KEYLAST"
      Case WM_INITDIALOG
         ? "Msg == WM_INITDIALOG"
      Case WM_COMMAND
         ? "Msg == WM_COMMAND"
      Case WM_SYSCOMMAND
         ? "Msg == WM_SYSCOMMAND"
      Case WM_TIMER
         ? "Msg == WM_TIMER"
      Case WM_HSCROLL
         ? "Msg == WM_HSCROLL"
      Case WM_VSCROLL
         ? "Msg == WM_VSCROLL"
      Case WM_INITMENU
         ? "Msg == WM_INITMENU"
      Case WM_INITMENUPOPUP
         ? "Msg == WM_INITMENUPOPUP"
      Case WM_MENUSELECT
         ? "Msg == WM_MENUSELECT"
      Case WM_MENUCHAR
         ? "Msg == WM_MENUCHAR"
      Case WM_ENTERIDLE
         ? "Msg == WM_ENTERIDLE"
      Case WM_MENURBUTTONUP
         ? "Msg == WM_MENURBUTTONUP"
      Case WM_MENUDRAG
         ? "Msg == WM_MENUDRAG"
      Case WM_MENUGETOBJECT
         ? "Msg == WM_MENUGETOBJECT"
      Case WM_UNINITMENUPOPUP
         ? "Msg == WM_UNINITMENUPOPUP"
      Case WM_MENUCOMMAND
         ? "Msg == WM_MENUCOMMAND"
      Case WM_CHANGEUISTATE
         ? "Msg == WM_CHANGEUISTATE"
      Case WM_UPDATEUISTATE
         ? "Msg == WM_UPDATEUISTATE"
      Case WM_QUERYUISTATE
         ? "Msg == WM_QUERYUISTATE"
      Case WM_CTLCOLORMSGBOX
         ? "Msg == WM_CTLCOLORMSGBOX"
      Case WM_CTLCOLOREDIT
         ? "Msg == WM_CTLCOLOREDIT"
      Case WM_CTLCOLORLISTBOX
         ? "Msg == WM_CTLCOLORLISTBOX"
      Case WM_CTLCOLORBTN
         ? "Msg == WM_CTLCOLORBTN"
      Case WM_CTLCOLORDLG
         ? "Msg == WM_CTLCOLORDLG"
      Case WM_CTLCOLORSCROLLBAR
         ? "Msg == WM_CTLCOLORSCROLLBAR"
      Case WM_CTLCOLORSTATIC
         ? "Msg == WM_CTLCOLORSTATIC"
      Case WM_MOUSEFIRST
         ? "Msg == WM_MOUSEFIRST"
      Case WM_MOUSEMOVE
         ? "Msg == WM_MOUSEMOVE"
      Case WM_LBUTTONDOWN
         ? "Msg == WM_LBUTTONDOWN"
      Case WM_LBUTTONUP
         ? "Msg == WM_LBUTTONUP"
      Case WM_LBUTTONDBLCLK
         ? "Msg == WM_LBUTTONDBLCLK"
      Case WM_RBUTTONDOWN
         ? "Msg == WM_RBUTTONDOWN"
      Case WM_RBUTTONUP
         ? "Msg == WM_RBUTTONUP"
      Case WM_RBUTTONDBLCLK
         ? "Msg == WM_RBUTTONDBLCLK"
      Case WM_MBUTTONDOWN
         ? "Msg == WM_MBUTTONDOWN"
      Case WM_MBUTTONUP
         ? "Msg == WM_MBUTTONUP"
      Case WM_MBUTTONDBLCLK
         ? "Msg == WM_MBUTTONDBLCLK"
      Case WM_MOUSEWHEEL
         ? "Msg == WM_MOUSEWHEEL"
      Case WM_XBUTTONDOWN
         ? "Msg == WM_XBUTTONDOWN"
      Case WM_XBUTTONUP
         ? "Msg == WM_XBUTTONUP"
      Case WM_XBUTTONDBLCLK
         ? "Msg == WM_XBUTTONDBLCLK"
      Case WM_PARENTNOTIFY
         ? "Msg == WM_PARENTNOTIFY"
      Case WM_ENTERMENULOOP
         ? "Msg == WM_ENTERMENULOOP"
      Case WM_EXITMENULOOP
         ? "Msg == WM_EXITMENULOOP"
      Case WM_NEXTMENU
         ? "Msg == WM_NEXTMENU"
      Case WM_SIZING
         ? "Msg == WM_SIZING"
      Case WM_CAPTURECHANGED
         ? "Msg == WM_CAPTURECHANGED"
      Case WM_MOVING
         ? "Msg == WM_MOVING"
      Case WM_POWERBROADCAST
         ? "Msg == WM_POWERBROADCAST"
      Case WM_DEVICECHANGE
         ? "Msg == WM_DEVICECHANGE"
      Case WM_MDICREATE
         ? "Msg == WM_MDICREATE"
      Case WM_MDIDESTROY
         ? "Msg == WM_MDIDESTROY"
      Case WM_MDIACTIVATE
         ? "Msg == WM_MDIACTIVATE"
      Case WM_MDIRESTORE
         ? "Msg == WM_MDIRESTORE"
      Case WM_MDINEXT
         ? "Msg == WM_MDINEXT"
      Case WM_MDIMAXIMIZE
         ? "Msg == WM_MDIMAXIMIZE"
      Case WM_MDITILE
         ? "Msg == WM_MDITILE"
      Case WM_MDICASCADE
         ? "Msg == WM_MDICASCADE"
      Case WM_MDIICONARRANGE
         ? "Msg == WM_MDIICONARRANGE"
      Case WM_MDIGETACTIVE
         ? "Msg == WM_MDIGETACTIVE"
      Case WM_MDISETMENU
         ? "Msg == WM_MDISETMENU"
      Case WM_ENTERSIZEMOVE
         ? "Msg == WM_ENTERSIZEMOVE"
      Case WM_EXITSIZEMOVE
         ? "Msg == WM_EXITSIZEMOVE"
      Case WM_DROPFILES
         ? "Msg == WM_DROPFILES"
      Case WM_MDIREFRESHMENU
         ? "Msg == WM_MDIREFRESHMENU"
      Case WM_IME_SETCONTEXT
         ? "Msg == WM_IME_SETCONTEXT"
      Case WM_IME_NOTIFY
         ? "Msg == WM_IME_NOTIFY"
      Case WM_IME_CONTROL
         ? "Msg == WM_IME_CONTROL"
      Case WM_IME_COMPOSITIONFULL
         ? "Msg == WM_IME_COMPOSITIONFULL"
      Case WM_IME_SELECT
         ? "Msg == WM_IME_SELECT"
      Case WM_IME_CHAR
         ? "Msg == WM_IME_CHAR"
      Case WM_IME_REQUEST
         ? "Msg == WM_IME_REQUEST"
      Case WM_IME_KEYDOWN
         ? "Msg == WM_IME_KEYDOWN"
      Case WM_IME_KEYUP
         ? "Msg == WM_IME_KEYUP"
      Case WM_MOUSEHOVER
         ? "Msg == WM_MOUSEHOVER"
      Case WM_MOUSELEAVE
         ? "Msg == WM_MOUSELEAVE"
      Case WM_NCMOUSEHOVER
         ? "Msg == WM_NCMOUSEHOVER"
      Case WM_NCMOUSELEAVE
         ? "Msg == WM_NCMOUSELEAVE"
      Case WM_WTSSESSION_CHANGE
         ? "Msg == WM_WTSSESSION_CHANGE"
      Case WM_TABLET_FIRST
         ? "Msg == WM_TABLET_FIRST"
      Case WM_TABLET_LAST
         ? "Msg == WM_TABLET_LAST"
      Case WM_CUT
         ? "Msg == WM_CUT"
      Case WM_COPY
         ? "Msg == WM_COPY"
      Case WM_PASTE
         ? "Msg == WM_PASTE"
      Case WM_CLEAR
         ? "Msg == WM_CLEAR"
      Case WM_UNDO
         ? "Msg == WM_UNDO"
      Case WM_RENDERFORMAT
         ? "Msg == WM_RENDERFORMAT"
      Case WM_RENDERALLFORMATS
         ? "Msg == WM_RENDERALLFORMATS"
      Case WM_DESTROYCLIPBOARD
         ? "Msg == WM_DESTROYCLIPBOARD"
      Case WM_DRAWCLIPBOARD
         ? "Msg == WM_DRAWCLIPBOARD"
      Case WM_PAINTCLIPBOARD
         ? "Msg == WM_PAINTCLIPBOARD"
      Case WM_VSCROLLCLIPBOARD
         ? "Msg == WM_VSCROLLCLIPBOARD"
      Case WM_SIZECLIPBOARD
         ? "Msg == WM_SIZECLIPBOARD"
      Case WM_ASKCBFORMATNAME
         ? "Msg == WM_ASKCBFORMATNAME"
      Case WM_CHANGECBCHAIN
         ? "Msg == WM_CHANGECBCHAIN"
      Case WM_HSCROLLCLIPBOARD
         ? "Msg == WM_HSCROLLCLIPBOARD"
      Case WM_QUERYNEWPALETTE
         ? "Msg == WM_QUERYNEWPALETTE"
      Case WM_PALETTEISCHANGING
         ? "Msg == WM_PALETTEISCHANGING"
      Case WM_PALETTECHANGED
         ? "Msg == WM_PALETTECHANGED"
      Case WM_HOTKEY
         ? "Msg == WM_HOTKEY"
      Case WM_PRINT
         ? "Msg == WM_PRINT"
      Case WM_PRINTCLIENT
         ? "Msg == WM_PRINTCLIENT"
      Case WM_APPCOMMAND
         ? "Msg == WM_APPCOMMAND"
      Case WM_THEMECHANGED
         ? "Msg == WM_THEMECHANGED"
      Case WM_HANDHELDFIRST
         ? "Msg == WM_HANDHELDFIRST"
      Case WM_HANDHELDLAST
         ? "Msg == WM_HANDHELDLAST"
      Case WM_AFXFIRST
         ? "Msg == WM_AFXFIRST"
      Case WM_AFXLAST
         ? "Msg == WM_AFXLAST"
      Case WM_PENWINFIRST
         ? "Msg == WM_PENWINFIRST"
      Case WM_PENWINLAST
         ? "Msg == WM_PENWINLAST"
      Case WM_USER
         ? "Msg == WM_USER"
      Case WM_APP
         ? "Msg == WM_APP"
      Case Else
         ? "Msg == ???"
   End Select
End Events


Enjoy !
Yours,

(¯`·._.·[Gerome GUILLEMIN]·._.·´¯)
:: Full SETUP w. HELP 05th of December 2011 ::
http://www.fbsl.net/setup/FBSLv3.exe [full v3.4.10 installation pack]
http://www.fbsl.net/setup/FBSLv3bin.zip [minimal upgrade to v3.4.10]
Laissons les jolies femmes aux hommes sans imagination. / Let us leave pretty women to men without imagination.(M.Proust)
The success is a defeat for the one who does not want to dance any more! (H.F. Thiefaine)
User avatar
Gerome
FBSL Administrator
FBSL Administrator
 
Posts: 3149
Joined: Sat Mar 12, 2005 9:06 pm
Location: Paris -- France

Re: All about Window messages

Unread postby Goldsmith » Wed Sep 07, 2016 3:36 pm

Hi Gerome,
Thanks. :)
User avatar
Goldsmith
FBSL tiny seed
FBSL tiny seed
 
Posts: 48
Joined: Fri Aug 19, 2016 10:21 am

Re: All about Window messages

Unread postby Mike Lobanovsky » Wed Sep 07, 2016 10:40 pm

All these Windows message #define's are part of Windows.inc file. No need to redefine them again in an FBSL v3.5 script.

WM_CREATE cannot be intercepted in either GUI ME, or MDI ME, or FbslForm() window. These window types are created by FBSL before they ever reach their respective Begin Events/End Events entry points in the script.

You can however intercept WM_CREATE in a window your create completely from scratch using RegisterClassEx()/CreateWindowEx() APIs.

WM_QUIT cannot be intercepted in any MS Windows window callback. It simply never reaches in there causing immediate abortion of the entire message pump.

Constants like WM_NULL, WM_APP and some others aren't in fact true messages but rather placeholders to denote usable ranges of genuine window messages in an enumeration.
Mike
"Я старый солдат, мадам, и не знаю слов любви."
"I am an old soldier, ma'am, and I don't know the words of love."
"Je suis un vieux soldat, madame, et je ne connais pas les mots d'amour."
"Ich bin ein alter Soldat, gnädige Frau, und ich weiß nicht die Worte der Liebe."

__________________________________________________________________________________________________________________________________________________
(3.2GHz i5 Core Quad, 8GB RAM / 2 x nVidia GTX 550Ti SLI-bridged, 2GB VRAM)
(x86 Win XP Pro Russian Sp3/x86 Win Vista Ultimate Sp2/x64 Win 7 Ultimate Sp1/Wine in x64 elementaryOS Luna)
User avatar
Mike Lobanovsky
FBSL Administrator
FBSL Administrator
 
Posts: 1824
Joined: Tue Apr 19, 2005 8:22 am
Location: Republic of Belarus

Re: All about Window messages

Unread postby Goldsmith » Thu Sep 08, 2016 6:41 am

Mike,
Thanks for the info. I think WM_CREATE is a rearely used message. I thing we can do almost starting things in form loading.
User avatar
Goldsmith
FBSL tiny seed
FBSL tiny seed
 
Posts: 48
Joined: Fri Aug 19, 2016 10:21 am


Return to FBSL v3 Tips and Tricks

Who is online

Users browsing this forum: No registered users and 1 guest

cron