首页 > 系统相关 >WindowsAPI-C#版_句柄回调常用通知类型汇总(HandleNotification)

WindowsAPI-C#版_句柄回调常用通知类型汇总(HandleNotification)

时间:2022-12-02 13:56:06浏览次数:42  
标签:窗口 鼠标 C# 句柄 WM HandleNotification 消息 通知 发送到

包含自定义的HandleNotification_MessageMsg、HandleNotification_MessageWParam类型,如下:

/**
*┌──────────────────────────────────────────────────────────────┐
*│ 描  述:WindowsAPI_句柄回调通知类型汇总  
*│ 作  者:执笔小白 
*│ 版  本:1.0 
*│ 创建时间:2022-11-17 15:40:56   
*└──────────────────────────────────────────────────────────────┘
*┌──────────────────────────────────────────────────────────────┐
*│ 命名空间: WindowAPIHelper   
*│ 类  名:HandleNotification   
*└──────────────────────────────────────────────────────────────┘
*/
using System;
using System.Linq;
using System.Text;

namespace WindowAPIHelper.API
{
    /// <summary>
    /// 句柄回调通知的类型
    /// </summary>
    public class HandleNotification
    {
        /// <summary>
        /// 句柄回调通知_Message.Msg(uMsg)
        /// System-Defined消息
        /// </summary>
        public enum HandleNotification_MessageMsg
        {
            #region System-Defined消息
            #region ABM 和 ABN;  应用程序桌面工具栏

            #endregion
            #region ACM 和 ACN;  动画控件

            #endregion
            #region BCM、BCN、BM 和 BN; Button 控件

            #endregion
            #region CB 和 CBN; ComboBox 控件

            #endregion
            #region CBEM 和 CBEN; ComboBoxEx 控件

            #endregion
            #region CCM; 常规控制

            #endregion
            #region CDM; “常见”对话框

            #endregion
            #region DFM; 默认上下文菜单

            #endregion
            #region DL; 拖动列表框

            #endregion
            #region DM; 默认推送按钮控件

            #endregion
            #region DTM 和 DTN;  日期和时间选取器控件

            #endregion
            #region EM 和 EN; 编辑控件

            #endregion
            #region HDM 和 HDN;  标头控件

            #endregion
            #region HKM; 热键控制

            #endregion
            #region IPM 和 IPN;  IP 地址控件

            #endregion
            #region LB 和 LBN; 列表框控件

            #endregion
            #region LM; SysLink 控件

            #endregion
            #region LVM 和 LVN;  列表视图控件

            #endregion
            #region MCM 和 MCN;  月历控件

            #endregion
            #region PBM; 进度栏

            #endregion
            #region PGM 和 PGN;  寻呼控件

            #endregion
            #region PSM 和 PSN;  属性表

            #endregion
            #region RB 和 RBN; Rebar 控件

            #endregion
            #region SB 和 SBN; 状态栏窗口

            #endregion
            #region SBM; 滚动条控件

            #endregion
            #region SMC; Shell 菜单

            #endregion
            #region STM 和 STN;  静态控件

            #endregion
            #region TB 和 TBN; 工具栏

            #endregion
            #region TBM 和 TRBN; Trackbar 控件

            #endregion
            #region TCM 和 TCN;  Tab 控件

            #endregion
            #region TDM 和 TDN;  任务对话框

            #endregion
            #region TTM 和 TTN;  工具提示控件

            #endregion
            #region TVM 和 TVN;  树视图控件

            #endregion
            #region UDM 和 UDN;  向上控件

            #endregion

            #region WM; "常规(去掉了部分官网提到的未来不支持的项;剪贴板通知,常见对话框通知,游标通知,数据复制消息,桌面窗口管理器消息,设备管理消息,对话框通知,动态数据Exchange消息,动态数据Exchange通知,挂钩通知,,键盘加速器通知,,键盘输入通知,菜单通知,鼠标输入通知,多个文档接口消息,原始输入通知,,计时器通知,,窗口通知)"
            WM_CUT = 0x0300, // 剪贴板消息_应用程序将 WM_CUT 消息发送到编辑控件或组合框,以删除 (剪切) 当前所选内容(如果有),并在编辑控件中以 CF_TEXT 格式将已删除的文本复制剪贴板消息_到剪贴板。
            WM_COPY = 0x0301, // 剪贴板消息_应用程序将 WM_COPY 消息发送到编辑控件或组合框,以 CF_TEXT 格式将当前选定内容复制到剪贴板。
            WM_PASTE = 0x0302, // 剪贴板消息_应用程序将 WM_PASTE 消息发送到编辑控件或组合框,以将剪贴板的当前内容复制到位于当前插入点位置的编辑控件。 仅当剪贴板包含 CF_TEXT 格式的数据时,才会插入数据。
            WM_CLEAR = 0x0303, // 剪贴板消息_应用程序将 WM_CLEAR 消息发送到编辑控件或组合框,以从编辑控件中删除 (清除) 当前所选内容(如果有)。
            WM_ASKCBFORMATNAME = 0x030C, // 剪贴板通知_通过剪贴板查看器窗口发送到剪贴板所有者,以请求 CF_OWNERDISPLAY 剪贴板格式的名称。
            WM_CHANGECBCHAIN = 0x030D, // 剪贴板通知_从链中删除窗口时,发送到剪贴板查看器链中的第一个窗口。
            WM_CLIPBOARDUPDATE = 0x031D, // 剪贴板通知_剪贴板的内容发生更改时发送。
            WM_DESTROYCLIPBOARD = 0x0307, // 剪贴板通知_当对 EmptyClipboard 函数的调用耗尽剪贴板时,发送到剪贴板所有者。
            WM_DRAWCLIPBOARD = 0x0308, // 剪贴板通知_当剪贴板的内容发生更改时,发送到剪贴板查看器链中的第一个窗口。 这使剪贴板查看器窗口能够显示剪贴板的新内容。
            WM_HSCROLLCLIPBOARD = 0x030E, // 剪贴板通知_通过剪贴板查看器窗口发送到剪贴板所有者。 当剪贴板包含 CF_OWNERDISPLAY 格式的数据,并且剪贴板查看器的水平滚动条中发生事件时,会发生此情况。 所有者应滚动剪贴板图像并更新滚动条值。
            WM_PAINTCLIPBOARD = 0x0309, // 剪贴板通知_当剪贴板包含 CF_OWNERDISPLAY 格式的数据并且剪贴板查看器的工作区需要重新绘制时,由剪贴板查看器的剪贴板所有者窗口发送到剪贴板所有者
            WM_RENDERALLFORMATS = 0x0306, // 剪贴板通知_如果剪贴板所有者延迟呈现一个或多个剪贴板格式,则将其发送到剪贴板所有者,然后再将其销毁。 若要使剪贴板的内容可供其他应用程序使用,剪贴板所有者必须以能够生成的所有格式呈现数据,并通过调用 SetClipboardData 函数将数据放置在剪贴板上。
            WM_RENDERFORMAT = 0x0305, // 剪贴板通知_如果剪贴板所有者延迟呈现特定剪贴板格式,并且应用程序已请求采用该格式的数据,则将其发送到剪贴板所有者。 
            WM_SIZECLIPBOARD = 0x030B, // 剪贴板通知_当剪贴板包含 CF_OWNERDISPLAY 格式的数据并且剪贴板查看器的工作区已更改大小时,通过剪贴板查看器窗口发送到剪贴板所有者。
            WM_VSCROLLCLIPBOARD = 0x030A, // 剪贴板通知_当剪贴板包含 CF_OWNERDISPLAY 格式的数据并且剪贴板查看器的垂直滚动条中发生事件时,由剪贴板查看器的剪贴板查看器窗口发送到剪贴板所有者。 所有者应滚动剪贴板图像并更新滚动条值。

            WM_CTLCOLORDLG = 0x0136, // 对话框通知_在系统绘制对话框之前发送到对话框。 通过响应此消息,对话框可以使用指定的显示设备上下文句柄设置其文本和背景颜色。
            WM_ENTERIDLE = 0x0121, // 对话框通知_发送到进入空闲状态的模式对话框或菜单的所有者窗口。 模式对话框或菜单在处理一个或多个以前的消息后没有消息在队列中等待时进入空闲状态。
            WM_GETDLGCODE = 0x0087, // 对话框通知_发送到与控件关联的窗口过程。 默认情况下,系统将处理控件的所有键盘输入;系统将某些类型的键盘输入解释为对话框导航键。
            WM_INITDIALOG = 0x0110, // 对话框通知_在显示对话框之前立即发送到对话框过程。 对话框过程通常使用此消息来初始化控件并执行影响对话框外观的任何其他初始化任务。
            WM_NEXTDLGCTL = 0x0028, // 对话框通知_发送到对话框过程,将键盘焦点设置为对话框中的其他控件。

            WM_DDE_INITIATE = 0x03E0, // 监视应用程序消息_DDE客户端应用程序发送WM_DDE_INITIATE消息,以启动与响应指定应用程序和主题名称的服务器应用程序的对话。 收到此消息后,所有名称与指定应用程序匹配且支持指定主题的服务器应用程序应确认它。 
            WM_DDE_ACK = 0x03E4, // 监视应用程序通知_WM_DDE_ACK消息通知DDE接收和处理一些消息
            WM_DDE_ADVISE = 0x03E2, // 监视应用程序通知_DDE 客户端应用程序将WM_DDE_ADVISE消息发布到 DDE 服务器应用程序,以请求服务器在项发生更改时提供数据项的更新。
            WM_DDE_DATA = 0x03E05, // 监视应用程序通知_DDE服务器应用程序向 DDE 客户端应用程序发布WM_DDE_DATA消息,以便将数据项传递给客户端或通知客户端数据项的可用性。
            WM_DDE_EXECUTE = 0x03E8, // 监视应用程序通知_DDE客户端应用程序将WM_DDE_EXECUTE消息发布到 DDE 服务器应用程序,以便将字符串发送到要作为一系列命令处理的服务器。
            WM_DDE_POKE = 0x03E7, // 监视应用程序通知_DDE客户端应用程序向 DDE 服务器应用程序发布WM_DDE_POKE消息。 客户端使用此消息请求服务器接受未经请求的数据项。 服务器应使用指示它是否接受数据项 的WM_DDE_ACK 消息进行答复。
            WM_DDE_REQUEST = 0x03E6, // 监视应用程序通知_DDE客户端应用程序将WM_DDE_REQUEST消息发布到 DDE 服务器应用程序,以请求数据项的值。
            WM_DDE_TERMINATE = 0x03E1, // 监视应用程序通知_DDE应用程序 (客户端或服务器) 发布WM_DDE_TERMINATE消息以终止会话。
            WM_DDE_UNADVISE = 0x03E3, // 监视应用程序通知_DDE客户端应用程序发布WM_DDE_UNADVISE消息,通知 DDE 服务器应用程序,该项的指定项或特定剪贴板格式不应再更新。 

            WM_SETCURSOR = 0x0020, // 鼠标光标通知_如果鼠标导致光标在窗口中移动,并且未捕获鼠标输入,则发送到窗口。
            WM_COPYDATA = 0x004A, // 数据复制消息_应用程序将 WM_COPYDATA 消息发送到另一个应用程序。
            WM_TIMER = 0x0113, // 定时器通知_在计时器过期时发布到安装线程的消息队列。 消息由 GetMessage 或 PeekMessage 函数发布。

            WM_INPUT = 0x00FF, // 原始输入通知_发送到正在获取原始输入的窗口。
            WM_INPUT_DEVICE_CHANGE = 0x00FE, // 原始输入通知_发送到注册以接收原始输入的窗口。

            WM_CHANGEUISTATE = 0x0127, // 键盘快捷键消息_应用程序发送 WM_CHANGEUISTATE 消息以指示应更改 UI 状态。
            WM_INITMENU = 0x0116, // 键盘快捷键消息_当菜单即将处于活动状态时发送。 当用户单击菜单栏上的项或按菜单键时发生。 这样,应用程序就可以在显示菜单之前对其进行修改。
            WM_QUERYUISTATE = 0x0129, // 键盘快捷键消息_应用程序发送 WM_QUERYUISTATE 消息以检索窗口的 UI 状态。
            WM_UPDATEUISTATE = 0x0128, // 键盘快捷键消息_应用程序发送 WM_UPDATEUISTATE 消息以更改指定窗口及其所有子窗口的 UI 状态。

            WM_GETHOTKEY = 0x0033, // 键盘输入消息_已发送以确定与窗口关联的热键。
            WM_SETHOTKEY = 0x0032, // 键盘输入消息_发送到窗口以将热键与窗口相关联。 当用户按下热键时,系统会激活窗口。
            WM_ACTIVATE = 0x0006, // 键盘输入通知_发送到正在激活的窗口和正在停用的窗口。 如果窗口使用相同的输入队列,则会同步发送消息,首先发送到正在停用的顶级窗口的窗口过程,然后发送到正在激活的顶级窗口的窗口过程。 如果窗口使用不同的输入队列,则会异步发送消息,以便立即激活该窗口。
            WM_APPCOMMAND = 0x0319, // 键盘输入通知_通知窗口用户生成应用程序命令事件,例如,使用鼠标单击应用程序命令按钮或在键盘上键入应用程序命令键。
            WM_CHAR = 0x0102, // 键盘输入通知_当 TranslateMessage 函数翻译WM_KEYDOWN消息时,发布到具有键盘焦点的窗口。 WM_CHAR消息包含按下的键的字符代码。
            WM_DEADCHAR = 0x0103, // 键盘输入通知_当 TranslateMessage 函数翻译WM_KEYUP消息时,发布到具有键盘焦点的窗口。 WM_DEADCHAR 指定无效键生成的字符代码。 无效键是生成字符(如 umlaut (双点) )的键,该键与另一个字符结合使用以形成复合字符。 
            WM_HOTKEY = 0x0312, // 键盘输入通知_当用户按下 RegisterHotKey 函数注册的热键时发布。 消息放置在与注册热键的线程关联的消息队列的顶部。
            WM_KEYDOWN = 0x0100, // 键盘输入通知_按下非系统键时,使用键盘焦点发布到窗口。 非系统键是未按下 ALT 键时按下的键。
            WM_KEYUP = 0x0101, // 键盘输入通知_当释放非系统键时,发布到具有键盘焦点的窗口。 非系统键是当 Alt 键 未 按下时按下的键,或者当窗口具有键盘焦点时按下的键盘键。
            WM_KILLFOCUS = 0x0008, // 键盘输入通知_在失去键盘焦点之前立即发送到窗口。
            WM_SETFOCUS = 0x0007, // 键盘输入通知_在窗口获得键盘焦点后发送到窗口。
            WM_SYSDEADCHAR = 0x0107, // 键盘输入通知_当 TranslateMessage 函数翻译WM_SYSKEYDOWN消息时,使用键盘焦点发送到窗口。 WM_SYSDEADCHAR 指定系统无效键的字符代码,即按住 Alt 键时按下的无效键。
            WM_SYSKEYUP = 0x0105, // 键盘输入通知_当用户释放按下 Alt 键时按下的键时,发布到具有键盘焦点的窗口。 当没有窗口当前具有键盘焦点时,也会发生这种情况;在这种情况下, WM_SYSKEYUP 消息将发送到活动窗口。 
            WM_UNICHAR = 0x0109, // 键盘输入通知_应用程序可以使用 WM_UNICHAR 消息将输入发布到其他窗口。 此消息包含按下的键的字符代码。

            WM_CAPTURECHANGED = 0x0215, // 鼠标输入通知_发送到丢失鼠标捕获的窗口。
            WM_LBUTTONDBLCLK = 0x0203, // 鼠标输入通知_当用户双击鼠标左键时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下方的窗口。 否则,消息将发布到捕获鼠标的窗口。
            WM_LBUTTONDOWN = 0x0201, // 鼠标输入通知_当用户按下鼠标左键时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下的窗口。 否则,消息将发布到捕获鼠标的窗口。
            WM_LBUTTONUP = 0x0202, // 鼠标输入通知_当用户在光标位于窗口的工作区时释放鼠标左键时发布。 如果未捕获鼠标,消息将发布到光标下方的窗口。 否则,消息将发布到捕获鼠标的窗口。
            WM_MBUTTONDBLCLK = 0x0209, // 鼠标输入通知_当用户双击鼠标中间按钮时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下的窗口。 否则,消息将发布到捕获鼠标的窗口。
            WM_MBUTTONDOWN = 0x0207, // 鼠标输入通知_当用户按下鼠标中间按钮时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下方的窗口。 否则,消息将发布到捕获鼠标的窗口。
            WM_MBUTTONUP = 0x0208, // 鼠标输入通知_当用户在光标位于窗口的工作区时释放中间鼠标按钮时发布。 如果未捕获鼠标,消息将发布到光标下方的窗口。 否则,消息将发布到捕获鼠标的窗口。
            WM_MOUSEACTIVATE = 0x0021, // 鼠标输入通知_当光标处于非活动窗口中且用户按下鼠标按钮时发送。 仅当子窗口将其传递给 DefWindowProc 函数时,父窗口才会接收此消息。
            WM_MOUSEHOVER = 0x02A1, // 鼠标输入通知_当光标悬停在窗口的工作区上之前对 TrackMouseEvent 调用中指定的时间段内,发布到窗口。窗口通过其 WindowProc 函数接收此消息。
            WM_MOUSEHWHEEL = 0x020E, // 鼠标输入通知_当鼠标的水平滚轮倾斜或旋转时,发送到活动窗口。
            WM_MOUSELEAVE = 0x02A3, // 鼠标输入通知_当光标离开之前对 TrackMouseEvent 调用中指定的窗口的工作区时,发布到窗口。
            WM_MOUSEMOVE = 0x0200, // 鼠标输入通知_光标移动时发布到窗口。 如果未捕获鼠标,消息将发布到包含光标的窗口。 
            WM_MOUSEWHEEL = 0x020A, // 鼠标输入通知_当鼠标滚轮旋转时发送到焦点窗口。 DefWindowProc 函数将消息传播到窗口的父级。 不应对消息进行内部转发,因为 DefWindowProc 会将其传播到父链,直到找到处理消息的窗口。
            WM_NCHITTEST = 0x0084, // 鼠标输入通知_发送到窗口以确定窗口的哪个部分对应于特定的屏幕坐标。 例如,当光标移动、按下或释放鼠标按钮或响应对 WindowFromPoint 等函数的调用时,可能会发生这种情况。 如果未捕获鼠标,则会将消息发送到光标下方的窗口。 否则,消息将发送到已捕获鼠标的窗口。
            WM_NCLBUTTONDBLCLK = 0x00A3, // 鼠标输入通知_当用户双击鼠标左键时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
            WM_NCLBUTTONDOWN = 0x00A1, // 鼠标输入通知_当用户按下鼠标左键时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
            WM_NCLBUTTONUP = 0x00A2, // 鼠标输入通知_当用户释放鼠标左键时,光标位于窗口的非工作区内时发布。 此消息将发布到包含光标的窗口。 如果窗口捕获了鼠标,则不会发布此消息。
            WM_NCMBUTTONDBLCLK = 0x00A9, // 鼠标输入通知_当用户双击鼠标中间按钮时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口捕获了鼠标,则不会发布此消息。
            WM_NCMBUTTONDOWN = 0x00A7, // 鼠标输入通知_当用户按下鼠标中间按钮时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口捕获了鼠标,则不会发布此消息。
            WM_NCMBUTTONUP = 0x00A8, // 鼠标输入通知_当用户释放中间鼠标按钮时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
            WM_NCMOUSEHOVER = 0x02A0, // 鼠标输入通知_当光标悬停在窗口的非client区域上时,在之前对 TrackMouseEvent 的调用中指定的时间段内发布到窗口。
            WM_NCMOUSELEAVE = 0x02A2, // 鼠标输入通知_当光标离开之前对 TrackMouseEvent 的调用中指定的窗口的非client 区域时,发布到窗口。
            WM_NCMOUSEMOVE = 0x00A0, // 鼠标输入通知_当光标在窗口的非封闭区域中移动时,发布到窗口。 此消息将发布到包含光标的窗口。 如果窗口捕获了鼠标,则不会发布此消息。
            WM_NCRBUTTONDBLCLK = 0x00A6, // 鼠标输入通知_当用户双击鼠标右键时,光标位于窗口的非工作区内时发布。 此消息将发布到包含光标的窗口。 如果窗口捕获了鼠标,则不会发布此消息。
            WM_NCRBUTTONDOWN = 0x00A4, // 鼠标输入通知_当用户按下鼠标右键时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
            WM_NCRBUTTONUP = 0x00A5, // 鼠标输入通知_当用户释放鼠标右键时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口捕获了鼠标,则不会发布此消息。
            WM_NCXBUTTONDBLCLK = 0x00AD, // 鼠标输入通知_当用户双击第一个或第二个 X 按钮时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标,则不会发布此消息。
            WM_NCXBUTTONDOWN = 0x00AB, // 鼠标输入通知_当用户按下第一个或第二个 X 按钮时,光标位于窗口的非工作区时发布。 此消息将发布到包含光标的窗口。 如果窗口捕获了鼠标, 则不会 发布此消息。
            WM_NCXBUTTONUP = 0x00AC, // 鼠标输入通知_当用户释放第一个或第二个 X 按钮时,光标位于窗口的非封闭区域时发布。 此消息将发布到包含光标的窗口。 如果窗口已捕获鼠标, 则不会 发布此消息。
            WM_RBUTTONDBLCLK = 0x0206, // 鼠标输入通知_当用户双击鼠标右键时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下方的窗口。 否则,消息将发布到捕获鼠标的窗口。
            WM_RBUTTONUP = 0x0205, // 鼠标输入通知_当用户在光标位于窗口的工作区时释放鼠标右键时发布。 如果未捕获鼠标,消息将发布到光标下方的窗口。 否则,消息将发布到捕获鼠标的窗口。
            WM_RBUTTONDOWN = 0x0204, // 鼠标输入通知_当用户按下鼠标右键时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下的窗口。 否则,消息将发布到捕获鼠标的窗口。
            WM_XBUTTONDBLCLK = 0x020D, // 鼠标输入通知_当用户双击第一个或第二个 X 按钮时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下的窗口。 否则,消息将发布到捕获鼠标的窗口。
            WM_XBUTTONDOWN = 0x020B, // 鼠标输入通知_当用户按下第一个或第二个 X 按钮时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下的窗口。 否则,消息将发布到捕获鼠标的窗口。
            WM_XBUTTONUP = 0x020C, // 鼠标输入通知_当用户发布第一个或第二个 X 按钮时,光标位于窗口的工作区时发布。 如果未捕获鼠标,消息将发布到光标下方的窗口。 否则,消息将发布到捕获鼠标的窗口。

            WM_MDIACTIVATE = 0x0222, // 多文档界面消息_应用程序将 WM_MDIACTIVATE 消息发送到多文档接口 (MDI) 客户端窗口,以指示客户端窗口激活不同的 MDI 子窗口。
            WM_MDICASCADE = 0x0227, // 多文档界面消息_应用程序将 WM_MDICASCADE 消息发送到多文档接口 (MDI) 客户端窗口,以级联格式排列其所有子窗口。
            WM_MDICREATE = 0x0220, // 多文档界面消息_应用程序将 WM_MDICREATE 消息发送到多文档接口, (MDI) 客户端窗口创建 MDI 子窗口。
            WM_MDIDESTROY = 0x0221, // 多文档界面消息_应用程序将 WM_MDIDESTROY 消息发送到多文档接口, (MDI) 客户端窗口关闭 MDI 子窗口。
            WM_MDIGETACTIVE = 0x0229, // 多文档界面消息_应用程序将 WM_MDIGETACTIVE 消息发送到多文档接口 (MDI) 客户端窗口,以检索活动 MDI 子窗口的句柄。
            WM_MDIICONARRANGE = 0x0228, // 多文档界面消息_应用程序将 WM_MDIICONARRANGE 消息发送到多文档接口, (MDI) 客户端窗口排列所有最小化的 MDI 子窗口。 它不会影响未最小化的子窗口。
            WM_MDIMAXIMIZE = 0x0225, // 多文档界面消息_应用程序将 WM_MDIMAXIMIZE 消息发送到多文档接口, (MDI) 客户端窗口最大化 MDI 子窗口。 系统调整子窗口的大小,使其工作区填充客户端窗口。 系统将子窗口的窗口菜单图标置于框架窗口菜单栏的最右侧位置,并将子窗口的还原图标置于最左侧的位置。 系统还会将子窗口的标题栏文本追加到框架窗口的标题栏文本。
            WM_MDINEXT = 0x0224, // 多文档界面消息_应用程序将 WM_MDINEXT 消息发送到多文档接口 (MDI) 客户端窗口以激活下一个或上一个子窗口。
            WM_MDIREFRESHMENU = 0x0234, // 多文档界面消息_应用程序将 WM_MDIREFRESHMENU 消息发送到多文档接口, (MDI) 客户端窗口刷新 MDI 框架窗口的窗口菜单。
            WM_MDIRESTORE = 0x0223, // 多文档界面消息_应用程序将 WM_MDIRESTORE 消息发送到多文档接口, (MDI) 客户端窗口,以便从最大化或最小化的大小还原 MDI 子窗口。
            WM_MDITILE = 0x0226, // 多文档界面消息_应用程序将 WM_MDITILE 消息发送到多文档界面, (MDI) 客户端窗口,以磁贴格式排列其所有 MDI 子窗口。
            WM_MDISETMENU = 0x0230, // 多文档界面消息_应用程序将 WM_MDISETMENU 消息发送到多文档界面, (MDI) 客户端窗口替换 MDI 框架窗口的整个菜单,替换框架窗口的窗口菜单,或两者。

            WM_COMMAND = 0x0111, // 菜单通知_当用户从菜单中选择命令项、控件将通知消息发送到其父窗口或翻译快捷键击时发送。
            WM_CONTEXTMENU = 0x007B, // 菜单通知_通知用户希望显示上下文菜单的窗口。 用户可能已在窗口中单击鼠标右键 (右键单击) 、按 Shift+F10 或按应用程序键 (上下文菜单键) 某些键盘上可用。
            WM_ENTERMENULOOP = 0x0211, // 菜单通知_通知应用程序的主窗口过程已输入菜单模式循环。
            WM_EXITMENULOOP = 0x0212, // 菜单通知_通知应用程序的主窗口过程已退出菜单模式循环。
            WM_GETTITLEBARINFOEX = 0x033F, // 菜单通知_发送到请求扩展标题栏信息。
            WM_MENUCOMMAND = 0x0126, // 菜单通知_当用户从菜单中做出选择时发送。
            WM_MENUDRAG = 0x0123, // 菜单通知_当用户拖动菜单项时发送到拖放菜单的所有者。
            WM_MENUGETOBJECT = 0x0124, // 菜单通知_当鼠标光标进入菜单项或从项目中心移动到项的顶部或底部时,发送到拖放菜单的所有者。
            WM_MENURBUTTONUP = 0x0122, // 菜单通知_当用户在光标位于菜单项上时释放鼠标右键时发送。
            WM_NEXTMENU = 0x0213, // 菜单通知_当使用向右键或向左键在菜单栏和系统菜单之间切换时发送到应用程序。
            WM_UNINITMENUPOPUP = 0x0125, // 菜单通知_下拉菜单或子菜单被销毁时发送。

            MN_GETHMENU = 0x01E1, // 窗口消息_检索当前窗口的菜单句柄。
            WM_ERASEBKGND = 0x0014, // 窗口消息_当窗口背景必须在 (擦除时发送,例如,当窗口大小调整为) 时。 将发送消息以准备窗口的无效部分进行绘制。
            WM_GETFONT = 0x0031, // 窗口消息_检索控件当前正在绘制其文本的字体。
            WM_GETTEXT = 0x000D, // 窗口消息_将对应于窗口的文本复制到调用方提供的缓冲区中。
            WM_GETTEXTLENGTH = 0x000E, // 窗口消息_确定与窗口关联的文本的长度(以字符为单位)。
            WM_SETFONT = 0x0030, // 窗口消息_设置控件在绘制文本时要使用的字体。
            WM_SETICON = 0x0080, // 窗口消息_将新的大或小图标与窗口相关联。 系统在 Alt+TAB 对话框中显示大图标,以及窗口标题中的小图标。
            WM_SETTEXT = 0x000C, // 窗口消息_设置窗口的文本。

            WM_ACTIVATEAPP = 0x001C, // 窗口通知_当属于与活动窗口不同的应用程序的窗口即将激活时发送。 该消息将发送到正在激活其窗口的应用程序以及正在停用其窗口的应用程序。
            WM_CANCELMODE = 0x001F, // 窗口通知_发送到取消某些模式,例如鼠标捕获。 例如,当显示对话框或消息框时,系统会将此消息发送到活动窗口。 某些函数还会显式将此消息发送到指定窗口,而不考虑它是活动窗口。
            WM_CHILDACTIVATE = 0x0022, // 窗口通知_当用户单击窗口的标题栏或窗口被激活、移动或调整大小时,发送到子窗口。
            WM_CLOSE = 0x0010, // 窗口通知_发送为窗口或应用程序应终止的信号。
            WM_COMPACTING = 0x0041, // 窗口通知_当系统检测到超过 30 秒到 60 秒间隔的系统时间超过 12.5% 时,发送到所有顶级窗口。 这表示系统内存较低。
            WM_CREATE = 0x0001, // 窗口通知_当应用程序请求通过调用 CreateWindowEx 或 CreateWindow 函数创建窗口时发送。
            WM_DESTROY = 0x0002, // 窗口通知_当窗口被销毁时发送。 它将发送到从屏幕中删除窗口后正在销毁的窗口过程。
            WM_DPICHANGED = 0x02E0, // 窗口通知_当窗口的有效点数 (dpi) 更改时发送。 DPI 是窗口的规模因子。 有多个事件可能导致 DPI 更改。
            WM_ENABLE = 0x000A, // 窗口通知_当应用程序更改窗口的启用状态时发送。 它会发送到启用状态正在更改的窗口。 此消息在 EnableWindow 函数返回之前发送,但在启用状态 (WS_DISABLED 样式位) 窗口已更改之后。
            WM_ENTERSIZEMOVE = 0x0231, // 窗口通知_在窗口进入移动模式循环或调整大小循环后,将一次发送到窗口。 当用户单击窗口的标题栏或大小调整边框或窗口将 WM_SYSCOMMAND 消息传递到 DefWindowProc 函数和消息 的 wParam 参数指定 SC_MOVE 或 SC_SIZE 值时,窗口将输入移动或调整模式循环。 当 DefWindowProc 返回时,该操作已完成。
            WM_EXITSIZEMOVE = 0x0232, // 窗口通知_在窗口退出移动或调整模式循环后,将一次发送到窗口。 当用户单击窗口的标题栏或大小调整边框或窗口将 WM_SYSCOMMAND 消息传递到 DefWindowProc 函数时,窗口将输入移动或调整模式循环,而消息的 wParam 参数指定 SC_MOV E 或 SC_SIZE 值。 当 DefWindowProc 返回时,此操作将完成。
            WM_GETICON = 0x007F, // 窗口通知_发送到窗口以检索与窗口关联的大图标或小图标的句柄。 系统在 Alt+TAB 对话框中显示大图标,并在窗口标题中显示小图标。
            WM_GETMINMAXINFO = 0x0024, // 窗口通知_当窗口的大小或位置即将更改时,发送到窗口。 应用程序可以使用此消息替代窗口的默认最大化大小和位置,或者默认的最小或最大跟踪大小。
            WM_INPUTLANGCHANGE = 0x0051, // 窗口通知_更改应用程序输入语言后,发送到最受影响的窗口。 应进行任何特定于应用程序的设置并将消息传递给 DefWindowProc 函数,该函数会将消息传递给所有第一级子窗口。 这些子窗口可以将消息传递给 DefWindowProc ,使其将消息传递给其子窗口等。
            WM_INPUTLANGCHANGEREQUEST = 0x0050, // 窗口通知_当用户选择新的输入语言(在键盘控制面板应用程序) 或系统任务栏上的指示器中指定的热键 ()时,发布到具有焦点的窗口。 应用程序可以通过将消息传递给 DefWindowProc 函数来接受更改,或者拒绝更改 (,并阻止它立即返回) 。
            WM_MOVE = 0x0003, // 窗口通知_在移动窗口后发送。
            WM_MOVING = 0x0216, // 窗口通知_发送到用户正在移动的窗口。 通过处理此消息,应用程序可以监视拖动矩形的位置,并根据需要更改其位置。
            WM_NCACTIVATE = 0x0086, // 窗口通知_当需要更改其非client 区域以指示活动或非活动状态时,发送到窗口。
            WM_NCCALCSIZE = 0x0083, // 窗口通知_必须计算窗口工作区的大小和位置时发送。 通过处理此消息,应用程序可以在窗口的大小或位置发生更改时控制窗口工作区的内容。
            WM_NCCREATE = 0x0081, // 窗口通知_首次创建窗口时 ,在WM_CREATE 消息之前发送。
            WM_NCDESTROY = 0x0082, // 窗口通知_通知窗口其非client 区域正在被销毁。 DestroyWindow 函数将WM_NCDESTROY消息发送到WM_DESTROY消息后面的窗口。WM_DESTROY用于释放与窗口关联的已分配内存对象。子窗口被销毁后,将发送 WM_NCDESTROY 消息。 相比之下, WM_DESTROY 在销毁子窗口之前发送。
            WM_NULL = 0x0000, // 窗口通知_不执行任何操作。 如果应用程序想要帖子收件人窗口将忽略的邮件,则应用程序会发送WM_NULL邮件。
            WM_QUERYDRAGICON = 0x0037, // 窗口通知_发送到最小化的 (标志性的) 窗口。 窗口将由用户拖动,但没有为其类定义的图标。 应用程序可以将句柄返回到图标或游标。 当用户拖动图标时,系统会显示此光标或图标。
            WM_QUERYOPEN = 0x0013, // 窗口通知_当用户请求将窗口还原到其以前的大小和位置时,发送到图标。
            WM_QUIT = 0x0012, // 窗口通知_指示终止应用程序的请求,并在应用程序调用 PostQuitMessage 函数时生成。 
            WM_SHOWWINDOW = 0x0018, // 窗口通知_当窗口即将隐藏或显示时发送到窗口。
            WM_SIZE = 0x0005, // 窗口通知_更改窗口大小后发送到窗口。
            WM_SIZING = 0x0214, // 窗口通知_发送到用户正在调整大小的窗口。 通过处理此消息,应用程序可以监视拖动矩形的大小和位置,并根据需要更改其大小或位置。
            WM_STYLECHANGED = 0x007D, // 窗口通知_SetWindowLong 函数更改窗口的一个或多个样式后发送到窗口。
            WM_STYLECHANGING = 0x007C, // 窗口通知_当 SetWindowLong 函数即将更改窗口的一个或多个样式时,发送到窗口。
            WM_THEMECHANGED = 0x031A, // 窗口通知_在主题更改事件之后广播到每个窗口。 主题更改事件的示例包括主题的激活、主题停用或从一个主题过渡到另一个主题。
            WM_USERCHANGED = 0x0054, // 窗口通知_用户登录或关闭后发送到所有窗口。 当用户登录或关闭时,系统会更新用户特定的设置。 系统更新设置后立即发送此消息。 此消息在 Windows Vista 中不受支持。
            WM_WINDOWPOSCHANGED = 0x0047, // 窗口通知_由于对 SetWindowPos 函数或其他窗口管理函数的调用,其大小、位置或位置在 Z 顺序中的窗口已更改。
            WM_WINDOWPOSCHANGING = 0x0046, // 窗口通知_发送到一个窗口,其大小、位置或位置在 Z 顺序中将随着 对 SetWindowPos 函数或其他窗口管理函数的调用而更改。

            WM_DEVICECHANGE = 0x0219,  // 设备管理(537)
            #endregion
            #endregion System-Defined消息
        }

        /// <summary>
        /// 句柄回调通知_Message.WParam
        /// </summary>
        public enum HandleNotification_MessageWParam
        {
            #region DBT_DEVTYP_DEVICEINTERFACE(设备类型)
            DBT_DEVICEARRIVAL = 0x8000,   // 已插入设备或介质
            DBT_DEVICEQUERYREMOVE = 0x8001, // 请求权限删除设备或媒体片段。 任何应用程序都可以拒绝此请求并取消删除。
            DBT_DEVICEQUERYREMOVEFAILED = 0x8002, // 已取消删除设备或媒体块的请求。
            DBT_DEVICEREMOVEPENDING = 0x8003,   // 即将删除设备或媒体片段。 无法拒绝。
            DBT_DEVICEREMOVECOMPLETE = 0x8004,   // 已删除设备或媒体片段
            DBT_DEVICETYPESPECIFIC = 0x8005, // 发生了特定于设备的事件
            DBT_CUSTOMEVENT = 0x8006, // 发生了自定义事件
            DBT_DEVNODES_CHANGED = 0x0007,  // 已向系统添加或删除设备。
            DBT_QUERYCHANGECONFIG = 0x0017, // 请求权限更改当前配置 (停靠或取消停靠) 。
            DBT_CONFIGCHANGED = 0x0018,   // 由于停靠或取消停靠,当前配置已更改。
            DBT_CONFIGCHANGECANCELED = 0x0019,   // 已取消更改当前配置 (停靠或取消停靠) 的请求。
            DBT_USERDEFINED = 0xFFFF, // 此消息的含义是用户定义的
            #endregion DBT_DEVTYP_DEVICEINTERFACE(设备类型)
        }
    }
}

 

标签:窗口,鼠标,C#,句柄,WM,HandleNotification,消息,通知,发送到
From: https://www.cnblogs.com/qq2806933146xiaobai/p/16944246.html

相关文章

  • quilt add cdc_ncm.c
    2.添加patch关联的文件 quiltadd [-Pfilename.patch] filesquilt命令具有生成和应用补丁的功能,同时也可以作为补丁管理工具。使用quilt命令之后,会在源代码目录......
  • IIC死锁解决办法?
    目录1、现象2、原因3、解决方法4、相关博文1、现象        I2C死锁时表现为SCL为高,SDA一直为低。例如:1.1、正常情况该部分数据         ......
  • 车载测试系列:CAPL编程语言
    CAPL是类似C语言的语法,案例如下:/*@!Encoding:936*/includes{}variables{//ThefollowingthreemessagesaredefinedfortransmissionmessageEngineStatu......
  • 车载测试系列:CAPL脚本语法
    在车载控制器测试中,CAPL是常用的总线测试脚本之一,测试工程师需要掌握相关用法。1.定时器首先肯定是定时器了,在编写CAPL脚本中,使用的频率很高,比如我们需要周期性的发送CAN......
  • 车载测试系列:CAN总线渗透测试
    随着汽车智能化、网联化的高速发展,对于汽车通讯网络的安全威胁越来越多,而CAN总线是目前汽车使用最广泛的总线之一,因此对汽车CAN总线网络安全威胁进行渗透测试、挖掘潜在漏......
  • WindowsAPI-C#版_原始设备输入常用API
    WindowsAPI-C#版_原始设备输入常用API:/***┌──────────────────────────────────────────────────────────......
  • 车载测试系列:CAN总线错误及故障处理
    CAN五种错误检测机制一、基于信息流级别的错误检测1、CRC校验错误15位的CRC通过发送端根据发送信息的内容计算产生接收端根据接收内容重新计算CRC并于发送端发送过来......
  • vscode开发keil配置记录
    插件详细配置过程:C/C++(语言支持)、ChineseSimplified(编辑器汉化)、KeilAssistant(支持Keil工具)、TabnineAutocompleteAI(代码补齐)https://blog.csdn.net/xue_nuo......
  • 【翻译】rocksdb调试指引
    rocksdb调试指引翻译自官方wiki:https://github.com/facebook/rocksdb/wiki/RocksDB-Tuning-Guide转载请注明出处:https://www.cnblogs.com/morningli/p/16788424.html......
  • ElasticSearch
    `ElasticSearch1.什么是ElasticSearchElasticSearch简称ES,是基于ApacheLucene构建的开源搜索引擎,是当前流行的企业级搜索引擎(分布式搜索引擎)。Lucene本身就可以......