您的位置:首页 > 其它

一些窗口消息的详解

2012-07-02 18:24 591 查看
Public Const WM_NULL = &H0         '空消息
Public Const WM_NCCREATE = &H81    '当窗口第一次被创建时,此消息在WM_CREATE消息发送前发送
Public Const WM_CREATE = &H1       '窗口被创建时发送到它的窗口过程的消息
Public Const WM_NCDESTROY = &H82   '当窗口的非客户区正在销毁时
Public Const WM_DESTROY = &H2      '当窗口正在销毁时
Public Const WM_ACTIVATEAPP = &H1C '窗口准备被激活前或准备失去激活状态后的消息
Public Const WM_NCACTIVATE = &H86  '窗口非客户区准备被激活时或准备失去激活状态时的消息
Public Const WM_ACTIVATE = &H6     '窗口准备被激活时或准备失去激活状态时的消息
Public Const WM_SETFOCUS = &H7     '窗口得到焦点时(比如窗口由最小化还原时)的消息
Public Const WM_KILLFOCUS = &H8    '窗口失去焦点时的消息

Public Const WM_MOVE = &H3         '窗口移动后或最大,最小化,恢复,还原后发送到它的窗口过程的消息

Public Const WM_SIZE = &H5         '窗口的大小改变后或最大,最小化后发送到它的窗口过程的消息(可用wParam判断最大还是最小化)
'Size消息的附加信息(wParam)
Const SIZE_RESTORED = 0
Const SIZE_MINIMIZED = 1
Const SIZE_MAXIMIZED = 2
Const SIZE_MAXSHOW = 3
Const SIZE_MAXHIDE = 4

Public Const WM_ENABLE = &HA            '当调用EnableWindow API函数使窗口或控件的Enable状态发生改变时窗口接收到的消息
Public Const WM_SETREDRAW = &HB         '设置窗口或控件是否能重画(附加消息wParam为0时不能重画,为1时可以重画)
Public Const WM_SETTEXT = &HC           '设置窗口标题或控件的内容。也可以用来向另一个应用程序发送数据的消息。效果:跟 相同 SetWindowText API函数
Public Const WM_GETTEXT = &HD           '获取窗口标题或控件的内容。效果:跟 GetWindowText API函数相同
Public Const WM_GETTEXTLENGTH = &HE     '获取窗口标题或控件的内容的长度。效果:跟 GetWindowTextLength API函数相同
Public Const WM_PAINT = &HF             '当窗口有无效区域时,系统要求窗口重画无效区域的消息。可以调用 InvalidateRect API函数使窗口有无效区域
Public Const WM_CLOSE = &H10            '当窗口或应用程序要关闭时,或用来关闭另一个窗口或应用程序的消息
Public Const WM_QUERYENDSESSION = &H11  '关机,注销,重新启动时或其他程序调用了ExitWindows API函数,系统依次发送给所有程序的消息
Public Const WM_QUIT = &H12             '用来结束程序运行或当程序调用PostQuitMessage函数的消息
Public Const WM_QUERYOPEN = &H13        '当窗口恢复以前的大小位置时,把此消息发送给某个图标
Public Const WM_ERASEBKGND = &H14       '当窗口背景被擦除时。效果:跟 VB的Form_Paint过程相同(当AutoRedraw属性设置为True时)
Public Const WM_SYSCOLORCHANGE = &H15   '当系统颜色改变时,发送此消息给所有顶层窗口
Public Const WM_ENDSESSION = &H16       '当系统发出WM_QUERYENDSESSION消息后,等待检查WM_QUERYENDSESSION消息的返回值, 再接着发送此消息给应用程序,系统并根据返回值决定是否关机,注销或重启
Public Const WM_SHOWWINDOW = &H18       '当调用ShowWindow API函数使窗口显示的状态改变或窗口显示的状态发生改变时
Public Const WM_WININICHANGE = &H1A     '当系统的Win.ini文件内容改变后,发送此消息给所有顶层窗口
Public Const WM_DEVMODECHANGE = &H1B    '当系统的设备模式改变后,发送此消息给所有顶层窗口
Public Const WM_FONTCHANGE = &H1D       '当系统的字体资源库改变后,发送此消息给所有顶层窗口
Public Const WM_TIMECHANGE = &H1E       '当调用API改变或重新设置系统的时间后,系统发送此消息给所有顶层窗口
Public Const WM_CANCELMODE = &H1F       '发送此消息来取消某种正在进行的模式(操作)
Public Const WM_SETCURSOR = &H20        '当鼠标进入窗口时和在窗口上移动时
Public Const WM_MOUSEACTIVATE = &H21    '当用鼠标激活窗口时
Public Const WM_CHILDACTIVATE = &H22    '当MDI子窗口被激活,移动,改变大小
Public Const WM_QUEUESYNC = &H23        '此消息由基于计算机的训练程序发送,通过WH_JOURNALPALYBACK的hook程序分离出用户输入消息???

Public Const WM_GETMINMAXINFO = &H24    '当窗口将要改变大小或位置前
Public Type MINMAXINFO
ptReserved      As POINTAPI
ptMaxSize       As POINTAPI
ptMaxPosition   As POINTAPI
ptMinTrackSize  As POINTAPI '可以用来限制窗口最小的大小
ptMaxTrackSize  As POINTAPI '可以用来限制窗口最大的大小
End Type

Public Const WM_DRAWITEM = &H2B    '当button,combobox,listbox,menu的可视外观改变时,发送此消息给这些控件的父窗口
Public Const WM_MEASUREITEM = &H2C '当list box 或 combo box被销毁 或 当某些项被删除通过LB_DELETESTRING, LB_RESETCONTENT, CB_DELETESTRING, 或 CB_RESETCONTENT 消息

Public Const WM_SETFONT = &H30     '设置窗口或控件所使用的字体
Public Const WM_GETFONT = &H31     '得到窗口或控件所使用的字体
Public Const WM_SETHOTKEY = &H32   '设置一个跟窗口关联的热键
Public Const WM_GETHOTKEY = &H33   '得到一个跟窗口关联的热键

Public Const WM_COMPAREITEM = &H39 '发送此消息来判定combobox或listbox新增加的项的相对位置
Public Const WM_GETOBJECT = &H3D   '得到对象的信息
Public Const WM_COMPACTING = &H41  '显示内存已经很少了

Public Const WM_POWER = &H48        '当系统将要进入休眠状态时发送此消息
Public Const WM_COPYDATA = &H4A     '可以向另一个应用程序发送数据的消息
Public Type COPYDATASTRUCT
dwData As Long '附加数据
cbData As Long '要发送的数据的大小
lpData As Long '要发送的数据的地址
End Type

Public Const WM_CANCELJOURNAL = &H4B  '取消日志HOOK
Public Const WM_NOTIFY = &H4E         'ListView,TreeView等通用控件跟它们的父窗口通讯的消息
Public Const WM_INPUTLANGCHANGEREQUEST = &H50 '当选择某种输入语言,或输入语言的热键改变时

Public Const WM_TCARD = &H52          '当程序已经初始化Windows帮助例程时,发送此消息给应用程序
Public Const WM_HELP = &H53           '在当前窗口活动时,按下F1键时收到的消息
Public Const WM_USERCHANGED = &H54    '当用户已经登入或退出后发送此消息给所有的窗口,当用户登入或退出时系统更新用户的具体设置信息,在用户更新设置时系统马上发送此消息
Public Const WM_NOTIFYFORMAT = &H55   '公用控件,自定义控件和他们的父窗口通过此消息来判断控件是使用ANSI还是UNICODE结构在WM_NOTIFY消息,使用此控件能使某个控件与它的父控件之间进行相互通信
Public Const WM_CONTEXTMENU = &H7B    '当在某个窗口中点击了一下右键就发送此消息给这个窗口
Public Const WM_STYLECHANGING = &H7C  '当调用SetWindowLong API函数改变一个或多个窗口的风格时
Public Const WM_STYLECHANGED = &H7D   '当调用SetWindowLong API函数改变一个或多个窗口的风格后
Public Const WM_DISPLAYCHANGE = &H7E  '当显示器的分辨率发生改变后,系统发送此消息给所有的窗口

Public Const WM_GETICON = &H7F        '获取窗口的图标句柄
Public Const WM_SETICON = &H80        '改变窗口的图标
'附加参数(wparam)的值
Public Const ICON_SMALL = 0 '小图标
Public Const ICON_BIG = 1   '窗口左上角那个大图标

Public Const WM_NCCALCSIZE = &H83      '当需要计算窗口的非客户区大小时(例如:窗口大小改变了)。非客户区指的是窗口标题栏和窗口边框
Public Const WM_NCHITTEST = &H84       '当鼠标进入窗口(包含非客户区)时和在窗口上(包含非客户区)移动时

Public Const WM_NCMOUSEMOVE = &HA0     '当鼠标在窗口非客户区移动时
Public Const WM_NCLBUTTONDOWN = &HA1   '当鼠标左键在窗口非客户区按下
Public Const WM_NCLBUTTONUP = &HA2     '当鼠标左键在窗口非客户区放开
Public Const WM_NCLBUTTONDBLCLK = &HA3 '当鼠标左键在窗口非客户区双击
Public Const WM_NCRBUTTONDOWN = &HA4   '当鼠标右键在窗口非客户区按下
Public Const WM_NCRBUTTONUP = &HA5     '当鼠标右键在窗口非客户区放开
Public Const WM_NCRBUTTONDBLCLK = &HA6 '当鼠标右键在窗口非客户区双击
Public Const WM_NCMBUTTONDOWN = &HA7   '当鼠标中键在窗口非客户区按下
Public Const WM_NCMBUTTONUP = &HA8     '当鼠标中键在窗口非客户区放开
Public Const WM_NCMBUTTONDBLCLK = &HA9 '当鼠标中键在窗口非客户区双击

Public Const WM_KEYDOWN = &H100        '在键盘按下了某个键(Print Screen键,Alt键,Alt组合键和Win组合键除外),也可以用来模拟按键
Public Const WM_KEYUP = &H101          '在键盘放开了某个键,也可以用来模拟按键
Public Const WM_CHAR = &H102           '接收字符的消息,也可以用来向窗口发送字符
Public Const WM_DEADCHAR = &H103       '死字符消息
Public Const WM_SYSKEYDOWN = &H104     '在键盘按下了 Alt键 或 Alt组合键 的消息
Public Const WM_SYSKEYUP = &H105       '在键盘放开了 Alt组合键
Public Const WM_SYSCHAR = &H106        '系统字符消息
Public Const WM_SYSDEADCHAR = &H107    '系统死字符消息

Public Const WM_INITDIALOG = &H110     '系统标准对话框初始化时的消息,对话框使用此消息代替了WM_CREATE消息
Public Const WM_COMMAND = &H111        '鼠标点击窗口菜单项后或窗口中的非图形控件(如Button)后发送的消息(其中hwnd为窗口句柄,wParam为控件ID,lParam为菜单或控件句柄)
Public Const WM_SYSCOMMAND = &H112     '鼠标点击窗口的非客户区后发送的消息(可用wParam判断点击了非客户区的哪个地方)
'SYSCOMMAND消息的附加信息(wParam)
Const SC_SIZE = 61440            '系统菜单项上的大小
Const SC_MOVE = 61456            '系统菜单项上的移动
Const SC_MINIMIZE = 61472        '系统菜单项上的最小化
Const SC_MAXIMIZE = 61488        '系统菜单项上的最大化
Const SC_NEXTWINDOW = &HF040&    '显示在下次后面的再打开窗口
Const SC_PREVWINDOW = &HF050&    '显示上次前面打开的窗口
Const SC_CLOSE = 61536           '系统菜单项上的关闭
Const SC_RESTORE = 61728         '系统菜单项上还原
Const SC_SCREENSAVE = &HF140&    '调用屏幕保护程序(如果设置有的话)
Const SC_ICON = 61587            '点击了窗口左上角的图标
Const SC_ZOOM = SC_MAXIMIZE      '最大化
Const SC_MONITORPOWER = &HF170&  '关闭显示器(附加参数lParam的值为1或2)

Public Const WM_TIMER = &H113            '定时器专用消息,可用SetTimer或KillTimer API函数安装或卸载一个定时器
Public Const WM_HSCROLL = &H114          '水平滚动条滚动时
Public Const WM_VSCROLL = &H115          '垂直滚动条滚动时
Public Const WM_INITMENU = &H116         '当鼠标左键点击窗口菜单栏前
Public Const WM_INITMENUPOPUP = &H117    '当鼠标左键点击窗口菜单栏后,菜单弹出前
Public Const WM_MENUSELECT = &H11F       '当菜单项被选中时
Public Const WM_MENUCHAR = &H120         '当菜单已被激活且用户按下了某个键(不同于加速键),发送此消息给菜单的父窗口
Public Const WM_ENTERIDLE = &H121        '当一个模态对话框或菜单进入空闲状态时,发送此消息给它的父窗口

Public Const WM_MOUSEMOVE = &H200        '当鼠标在窗口客户区移动时
Public Const WM_LBUTTONDOWN = &H201      '当鼠标左键在窗口客户区按下
Public Const WM_LBUTTONUP = &H202        '当鼠标左键在窗口客户区放开
Public Const WM_LBUTTONDBLCLK = &H203    '当鼠标左键在窗口客户区双击
Public Const WM_RBUTTONDOWN = &H204      '当鼠标右键在窗口客户区按下
Public Const WM_RBUTTONUP = &H205        '当鼠标右键在窗口客户区放开
Public Const WM_RBUTTONDBLCLK = &H206    '当鼠标右键在窗口客户区双击
Public Const WM_MBUTTONDOWN = &H207      '当鼠标中键在窗口客户区按下
Public Const WM_MBUTTONUP = &H208        '当鼠标中键在窗口客户区放开
Public Const WM_MBUTTONDBLCLK = &H209    '当鼠标中键在窗口客户区双击
Public Const WM_MOUSEWHEEL = &H20A       '当滚动鼠标滚轮时
Public Const WM_PARENTNOTIFY = &H210     '当MDI子窗口被创建或被销毁,或按了一下鼠标键而光标在子窗口上时发送此消息给它的父窗口

Public Const WM_SIZING = &H214           '当用户正在调整窗口大小时的消息,通过此消息应用程序可以监视窗口大小和位置也可以修改它们
Public Const WM_CAPTURECHANGED = &H215   '鼠标捕获消息或调用SetCapture API后发送到窗口的消息
Public Const WM_MOVING = &H216           '当窗口正在移动中
Public Const WM_POWERBROADCAST = &H218   '系统广播消息给应用程序来通知它有关的电源管理事件
Public Const WM_DEVICECHANGE = &H219     '当设备的硬件配置改变时,发送此消息给应用程序或设备驱动程序(比如:插入了可移动磁盘),可以调用RegisterDeviceNotification 和UnregisterDeviceNotification API函数 注册和销毁设备的硬件配置改变通知消息

Public Const WM_DROPFILES = &H233        '文件拖动入窗口并放开的消息(窗口需要拥有WS_EX_ACCEPTFILES扩展风格,或调用DragAcceptFiles API函数。用DragQueryFile API函数可得到拖动文件名)

Public Const WM_MOUSEHOVER = &H2A1       '在上次调用TrackMouseEvent API函数的指定时间里,鼠标盘旋在窗口的客户区时的消息
Public Const WM_MOUSELEAVE = &H2A3       '鼠标离开上次调用TrackMouseEvent API函数时指定的窗口客户区时的消息。
Public Const WM_CUT = &H300              '剪切剪贴板的内容
Public Const WM_COPY = &H301             '复制剪贴板的内容
Public Const WM_PASTE = &H302            '粘贴剪贴板的内容
Public Const WM_CLEAR = &H303            '清除剪贴板的内容
Public Const WM_UNDO = &H304             '撤消上一次的操作

Public Const WM_DRAWCLIPBOARD = &H308    '当剪贴板的内容改变时发送此消息给剪贴板观察链的第一个窗口。可调用SetClipboardViewer API函数安装到剪贴板观察链上

Public Const WM_HOTKEY = &H312           '当按下由RegisterHotKey API函数注册的热键时收到的消息,也可以用此消息模拟系统热键(比如模拟Win+D键:Call PostMessage(HWND_BROADCAST, WM_HOTKEY, 1, 0))

Public Const WM_USER = &H400             '窗口自定义的消息


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: