各種控制元件的通知消碼和控制訊息可由
MSDN-> Platform SDK-> User Interface Services->Windows User Interface->Controls 查得。
Delphi裡的Windows訊息(一共227個基本訊息)
WM_NULL = $0000; WM_CREATE = $0001; WM_DESTROY = $0002; WM_MOVE = $0003; WM_SIZE = $0005; WM_ACTIVATE = $0006; WM_SETFOCUS = $0007; WM_KILLFOCUS = $0008; WM_ENABLE = $000A; WM_SETREDRAW = $000B; WM_SETTEXT = $000C; WM_GETTEXT = $000D; WM_GETTEXTLENGTH = $000E; WM_PAINT = $000F; WM_CLOSE = $0010; WM_QUERYENDSESSION = $0011; WM_QUIT = $0012; WM_QUERYOPEN = $0013; WM_ERASEBKGND = $0014; WM_SYSCOLORCHANGE = $0015; WM_ENDSESSION = $0016; WM_SYSTEMERROR = $0017; WM_SHOWWINDOW = $0018; WM_CTLCOLOR = $0019; WM_WININICHANGE = $001A; WM_SETTINGCHANGE = WM_WININICHANGE; WM_DEVMODECHANGE = $001B; WM_ACTIVATEAPP = $001C; WM_FONTCHANGE = $001D; WM_TIMECHANGE = $001E; WM_CANCELMODE = $001F; WM_SETCURSOR = $0020; WM_MOUSEACTIVATE = $0021; WM_CHILDACTIVATE = $0022; WM_QUEUESYNC = $0023; WM_GETMINMAXINFO = $0024; WM_PAINTICON = $0026; WM_ICONERASEBKGND = $0027; WM_NEXTDLGCTL = $0028; WM_SPOOLERSTATUS = $002A; WM_DRAWITEM = $002B; WM_MEASUREITEM = $002C; WM_DELETEITEM = $002D; WM_VKEYTOITEM = $002E; WM_CHARTOITEM = $002F; WM_SETFONT = $0030; WM_GETFONT = $0031; WM_SETHOTKEY = $0032; WM_GETHOTKEY = $0033; WM_QUERYDRAGICON = $0037; WM_COMPAREITEM = $0039; WM_GETOBJECT = $003D; WM_COMPACTING = $0041; WM_WINDOWPOSCHANGING = $0046; WM_WINDOWPOSCHANGED = $0047; WM_POWER = $0048; WM_COPYDATA = $004A; WM_CANCELJOURNAL = $004B; WM_NOTIFY = $004E; WM_INPUTLANGCHANGEREQUEST = $0050; WM_INPUTLANGCHANGE = $0051; WM_TCARD = $0052; WM_HELP = $0053; WM_USERCHANGED = $0054; WM_NOTIFYFORMAT = $0055; WM_CONTEXTMENU = $007B; WM_STYLECHANGING = $007C; WM_STYLECHANGED = $007D; WM_DISPLAYCHANGE = $007E; WM_GETICON = $007F; WM_SETICON = $0080; WM_NCCREATE = $0081; WM_NCDESTROY = $0082; WM_NCCALCSIZE = $0083; WM_NCHITTEST = $0084; WM_NCPAINT = $0085; WM_NCACTIVATE = $0086; WM_GETDLGCODE = $0087;
WM_NCMOUSEMOVE = $00A0; WM_NCLBUTTONDOWN = $00A1; WM_NCLBUTTONUP = $00A2; WM_NCLBUTTONDBLCLK = $00A3; WM_NCRBUTTONDOWN = $00A4; WM_NCRBUTTONUP = $00A5; WM_NCRBUTTONDBLCLK = $00A6; WM_NCMBUTTONDOWN = $00A7; WM_NCMBUTTONUP = $00A8; WM_NCMBUTTONDBLCLK = $00A9; WM_NCXBUTTONDOWN = $00AB; WM_NCXBUTTONUP = $00AC; WM_NCXBUTTONDBLCLK = $00AD;
WM_INPUT = $00FF; WM_KEYFIRST = $0100; WM_KEYDOWN = $0100; WM_KEYUP = $0101; WM_CHAR = $0102; WM_DEADCHAR = $0103; WM_SYSKEYDOWN = $0104; WM_SYSKEYUP = $0105; WM_SYSCHAR = $0106; WM_SYSDEADCHAR = $0107; WM_KEYLAST = $0108;
WM_INITDIALOG = $0110; WM_COMMAND = $0111; WM_SYSCOMMAND = $0112; WM_TIMER = $0113; WM_HSCROLL = $0114; WM_VSCROLL = $0115;
WM_INITMENU = $0116; WM_INITMENUPOPUP = $0117; WM_MENUSELECT = $011F; WM_MENUCHAR = $0120; WM_ENTERIDLE = $0121; WM_MENURBUTTONUP = $0122; WM_MENUDRAG = $0123; WM_MENUGETOBJECT = $0124; WM_UNINITMENUPOPUP = $0125; WM_MENUCOMMAND = $0126;
WM_CHANGEUISTATE = $0127; WM_UPDATEUISTATE = $0128; WM_QUERYUISTATE = $0129; WM_CTLCOLORMSGBOX = $0132; WM_CTLCOLOREDIT = $0133; WM_CTLCOLORLISTBOX = $0134; WM_CTLCOLORBTN = $0135; WM_CTLCOLORDLG = $0136; WM_CTLCOLORSCROLLBAR= $0137; WM_CTLCOLORSTATIC = $0138; WM_MOUSEFIRST = $0200; WM_MOUSEMOVE = $0200; WM_LBUTTONDOWN = $0201; WM_LBUTTONUP = $0202; WM_LBUTTONDBLCLK = $0203; WM_RBUTTONDOWN = $0204; WM_RBUTTONUP = $0205; WM_RBUTTONDBLCLK = $0206; WM_MBUTTONDOWN = $0207; WM_MBUTTONUP = $0208; WM_MBUTTONDBLCLK = $0209; WM_MOUSEWHEEL = $020A; WM_MOUSELAST = $020A; WM_PARENTNOTIFY = $0210; WM_ENTERMENULOOP = $0211; WM_EXITMENULOOP = $0212; WM_NEXTMENU = $0213; WM_SIZING = 532; WM_CAPTURECHANGED = 533; WM_MOVING = 534; WM_POWERBROADCAST = 536; WM_DEVICECHANGE = 537; WM_IME_STARTCOMPOSITION = $010D; WM_IME_ENDCOMPOSITION = $010E; WM_IME_COMPOSITION = $010F; WM_IME_KEYLAST = $010F; WM_IME_SETCONTEXT = $0281; WM_IME_NOTIFY = $0282; WM_IME_CONTROL = $0283; WM_IME_COMPOSITIONFULL = $0284; WM_IME_SELECT = $0285; WM_IME_CHAR = $0286; WM_IME_REQUEST = $0288; WM_IME_KEYDOWN = $0290; WM_IME_KEYUP = $0291; WM_MDICREATE = $0220; WM_MDIDESTROY = $0221; WM_MDIACTIVATE = $0222; WM_MDIRESTORE = $0223; WM_MDINEXT = $0224; WM_MDIMAXIMIZE = $0225; WM_MDITILE = $0226; WM_MDICASCADE = $0227; WM_MDIICONARRANGE = $0228; WM_MDIGETACTIVE = $0229; WM_MDISETMENU = $0230; WM_ENTERSIZEMOVE = $0231; WM_EXITSIZEMOVE = $0232; WM_DROPFILES = $0233; WM_MDIREFRESHMENU = $0234; WM_MOUSEHOVER = $02A1; WM_MOUSELEAVE = $02A3; WM_NCMOUSEHOVER = $02A0; WM_NCMOUSELEAVE = $02A2; WM_WTSSESSION_CHANGE = $02B1; WM_TABLET_FIRST = $02C0; WM_TABLET_LAST = $02DF; WM_CUT = $0300; WM_COPY = $0301; WM_PASTE = $0302; WM_CLEAR = $0303; WM_UNDO = $0304; WM_RENDERFORMAT = $0305; WM_RENDERALLFORMATS = $0306; WM_DESTROYCLIPBOARD = $0307; WM_DRAWCLIPBOARD = $0308; WM_PAINTCLIPBOARD = $0309; WM_VSCROLLCLIPBOARD = $030A; WM_SIZECLIPBOARD = $030B; WM_ASKCBFORMATNAME = $030C; WM_CHANGECBCHAIN = $030D; WM_HSCROLLCLIPBOARD = $030E; WM_QUERYNEWPALETTE = $030F; WM_PALETTEISCHANGING= $0310; WM_PALETTECHANGED = $0311; WM_HOTKEY = $0312; WM_PRINT = 791; WM_PRINTCLIENT = 792; WM_APPCOMMAND = $0319; WM_THEMECHANGED = $031A; WM_HANDHELDFIRST = 856; WM_HANDHELDLAST = 863; WM_PENWINFIRST = $0380; WM_PENWINLAST = $038F; WM_COALESCE_FIRST = $0390; WM_COALESCE_LAST = $039F; WM_DDE_FIRST = $03E0; WM_DDE_INITIATE = WM_DDE_FIRST + 0; WM_DDE_TERMINATE = WM_DDE_FIRST + 1; WM_DDE_ADVISE = WM_DDE_FIRST + 2; WM_DDE_UNADVISE = WM_DDE_FIRST + 3; WM_DDE_ACK = WM_DDE_FIRST + 4; WM_DDE_DATA = WM_DDE_FIRST + 5; WM_DDE_REQUEST = WM_DDE_FIRST + 6; WM_DDE_POKE = WM_DDE_FIRST + 7; WM_DDE_EXECUTE = WM_DDE_FIRST + 8; WM_DDE_LAST = WM_DDE_FIRST + 8; WM_APP = $8000; WM_USER = $0400;
WM_NULL---0X0000:表示無操作,在訊息對映中,如果應用程式試圖使接收器對其投遞的訊息實行忽略處理,則傳送WM_NULL型別訊息,如果窗體的訊息處理函式WindowProc接收到WM_NULL型別訊息,則忽略掉。
0X0001----0X0087:視窗訊息,例如WM_SIZE、WM_PAINT、WM_ERASEBKGND等。
0X00A0----0X00A9:非客戶區訊息,例如WM_NCMOUSEMOVE、WM_NCLBUTTONDBLCLK、WM_NCRBUTTONUP等。
0X0100----0X0108:鍵盤訊息,例如WM_KEYDOWN、WM_KEYFIRST、WM_CHAR、WM_SYSCHAR等。
0X0111----0X0112:選單命令,例如WM_COMMAND、WM_SYSCOMMAND。0X0132----0x0132----0x0138:顏色控制訊息,例如WM_CTLCOLORMSGBOX、WM_CTLCOLORLISTBOX、WM_CTLCOLORDLG等。
0X0200----0X020A:滑鼠訊息,例如WM_LBUTTONUP、WM_RBUTTONUP等。
0X0211----0X0213:選單迴圈訊息,例如WM_ENTERMENULOOP、WM_EXITMENULOOP等。
0X0220----0X0230:多文件訊息,例如WM_MDICREATE、WM_MDIDESTROY等。
0X03E0----0X03E8:DDE訊息,例如WM_PASTE、WM_CLEAR、WM_UNDO等。
0X0400:使用者自定義訊息的起點,WM_USER,以WM_USER + N形式出現。
0X8000:使用者自定義訊息的起點,WM_APP,以WM_APP + N形式出現。附屬控制元件的專用訊息
參考:
http://blog.csdn.net/mengde666/article/details/4036398
BN_CLICKED = 0; BN_PAINT = 1; BN_HILITE = 2; BN_UNHILITE = 3; BN_DISABLE = 4; BN_DOUBLECLICKED = 5; BN_PUSHED = BN_HILITE; BN_UNPUSHED = BN_UNHILITE; BN_DBLCLK = BN_DOUBLECLICKED; BN_SETFOCUS = 6; BN_KILLFOCUS = 7; BM_GETCHECK = $00F0; BM_SETCHECK = $00F1; BM_GETSTATE = $00F2; BM_SETSTATE = $00F3; BM_SETSTYLE = $00F4; BM_CLICK = $00F5; BM_GETIMAGE = $00F6; BM_SETIMAGE = $00F7; LBN_ERRSPACE = (-2); LBN_SELCHANGE = 1; LBN_DBLCLK = 2; LBN_SELCANCEL = 3; LBN_SETFOCUS = 4; LBN_KILLFOCUS = 5; LB_ADDSTRING = $0180; LB_INSERTSTRING = $0181; LB_DELETESTRING = $0182; LB_SELITEMRANGEEX = $0183; LB_RESETCONTENT = $0184; LB_SETSEL = $0185; LB_SETCURSEL = $0186; LB_GETSEL = $0187; LB_GETCURSEL = $0188; LB_GETTEXT = $0189; LB_GETTEXTLEN = $018A; LB_GETCOUNT = $018B; LB_SELECTSTRING = $018C; LB_DIR = $018D; LB_GETTOPINDEX = $018E; LB_FINDSTRING = $018F; LB_GETSELCOUNT = $0190; LB_GETSELITEMS = $0191; LB_SETTABSTOPS = $0192; LB_GETHORIZONTALEXTENT = $0193; LB_SETHORIZONTALEXTENT = $0194; LB_SETCOLUMNWIDTH = $0195; LB_ADDFILE = $0196; LB_SETTOPINDEX = $0197; LB_GETITEMRECT = $0198; LB_GETITEMDATA = $0199; LB_SETITEMDATA = $019A; LB_SELITEMRANGE = $019B; LB_SETANCHORINDEX = $019C; LB_GETANCHORINDEX = $019D; LB_SETCARETINDEX = $019E; LB_GETCARETINDEX = $019F; LB_SETITEMHEIGHT = $01A0; LB_GETITEMHEIGHT = $01A1; LB_FINDSTRINGEXACT = $01A2; LB_SETLOCALE = $01A5; LB_GETLOCALE = $01A6; LB_SETCOUNT = $01A7; LB_INITSTORAGE = $01A8; LB_ITEMFROMPOINT = $01A9; LB_MSGMAX = 432; CBN_ERRSPACE = (-1); CBN_SELCHANGE = 1; CBN_DBLCLK = 2; CBN_SETFOCUS = 3; CBN_KILLFOCUS = 4; CBN_EDITCHANGE = 5; CBN_EDITUPDATE = 6; CBN_DROPDOWN = 7; CBN_CLOSEUP = 8; CBN_SELENDOK = 9; CBN_SELENDCANCEL = 10; CB_GETEDITSEL = $0140; CB_LIMITTEXT = $0141; CB_SETEDITSEL = $0142; CB_ADDSTRING = $0143; CB_DELETESTRING = $0144; CB_DIR = $0145; CB_GETCOUNT = $0146; CB_GETCURSEL = $0147; CB_GETLBTEXT = $0148; CB_GETLBTEXTLEN = $0149; CB_INSERTSTRING = $014A; CB_RESETCONTENT = $014B; CB_FINDSTRING = $014C; CB_SELECTSTRING = $014D; CB_SETCURSEL = $014E; CB_SHOWDROPDOWN = $014F; CB_GETITEMDATA = $0150; CB_SETITEMDATA = $0151; CB_GETDROPPEDCONTROLRECT = $0152; CB_SETITEMHEIGHT = $0153; CB_GETITEMHEIGHT = $0154; CB_SETEXTENDEDUI = $0155; CB_GETEXTENDEDUI = $0156; CB_GETDROPPEDSTATE = $0157; CB_FINDSTRINGEXACT = $0158; CB_SETLOCALE = 345; CB_GETLOCALE = 346; CB_GETTOPINDEX = 347; CB_SETTOPINDEX = 348; CB_GETHORIZONTALEXTENT = 349; CB_SETHORIZONTALEXTENT = 350; CB_GETDROPPEDWIDTH = 351; CB_SETDROPPEDWIDTH = 352; CB_INITSTORAGE = 353; CB_MSGMAX = 354; EN_SETFOCUS = $0100; EN_KILLFOCUS = $0200; EN_CHANGE = $0300; EN_UPDATE = $0400; EN_ERRSPACE = $0500; EN_MAXTEXT = $0501; EN_HSCROLL = $0601; EN_VSCROLL = $0602; EM_GETSEL = $00B0; EM_SETSEL = $00B1; EM_GETRECT = $00B2; EM_SETRECT = $00B3; EM_SETRECTNP = $00B4; EM_SCROLL = $00B5; EM_LINESCROLL = $00B6; EM_SCROLLCARET = $00B7; EM_GETMODIFY = $00B8; EM_SETMODIFY = $00B9; EM_GETLINECOUNT = $00BA; EM_LINEINDEX = $00BB; EM_SETHANDLE = $00BC; EM_GETHANDLE = $00BD; EM_GETTHUMB = $00BE; EM_LINELENGTH = $00C1; EM_REPLACESEL = $00C2; EM_GETLINE = $00C4; EM_LIMITTEXT = $00C5; EM_CANUNDO = $00C6; EM_UNDO = $00C7; EM_FMTLINES = $00C8; EM_LINEFROMCHAR = $00C9; EM_SETTABSTOPS = $00CB; EM_SETPASSWORDCHAR = $00CC; EM_EMPTYUNDOBUFFER = $00CD; EM_GETFIRSTVISIBLELINE = $00CE; EM_SETREADONLY = $00CF; EM_SETWORDBREAKPROC = $00D0; EM_GETWORDBREAKPROC = $00D1; EM_GETPASSWORDCHAR = $00D2; EM_SETMARGINS = 211; EM_GETMARGINS = 212; EM_SETLIMITTEXT = EM_LIMITTEXT; //win40 Name change EM_GETLIMITTEXT = 213; EM_POSFROMCHAR = 214; EM_CHARFROMPOS = 215; EM_SETIMESTATUS = 216; EM_GETIMESTATUS = 217; SBM_SETSCROLLINFO = 233; SBM_GETSCROLLINFO = 234; DM_GETDEFID = (WM_USER+0); DM_SETDEFID = (WM_USER+1); DM_REPOSITION = (WM_USER+2); PSM_PAGEINFO = (WM_USER+100); PSM_SHEETINFO = (WM_USER+101);
// 訊息定義
使用者自定義的訊息, 對於其範圍有如下規定:
WM_USER: 0x0400-0x7FFF (ex. WM_USER+10)
WM_APP(winver> 4.0): 0x8000-0xBFFF (ex.WM_APP+4)
RegisterWindowMessage: 0xC000-0xFFFF