Windows窗口的通知消息

WM_ACTIVATEAPP 窗口正在被激活或正在被停用

wParam TRUE 被激活 FALSE 被停用

lParam 线程标识符

如果一个应用程序处理此消息,它应该返回零。

WM_CANCELMODE 窗口取消其内部的某些状态时发送,如弹出对话框时,当wm_cancelmode消息发送,DefWindowProc函数取消标准滚动条输入内部处理,取消内部菜单处理,并释放鼠标捕获

wParam 此参数不使用

lParam 此参数不使用

如果一个应用程序处理此消息,它应该返回零。

WM_CHILDACTIVATE 当用户单击“窗口标题栏”或“激活”、“移动”或“大小”的窗口时,发送给子窗口

wParam 此参数不使用

lParam 此参数不使用

如果一个应用程序处理此消息,它应该返回零。

WM_CLOSE 窗口关闭时,默认情况下,这个函数调用DestroyWindow函数销毁窗口

wParam 此参数不使用

lParam 此参数不使用

如果一个应用程序处理此消息,它应该返回零。

WM_COMPACTING 系统内存较低时发送给所有顶层窗口 超过12.5以上30-60秒,当一个应用程序接收到这个消息时,它应该释放尽可能多的内存

wParam CPU压缩内存的时间百分比

lParam 此参数不使用

如果一个应用程序处理此消息,它应该返回零。

WM_CREATE 当一个应用程序通过CreateWindowEx函数或者CreateWindow函数请求创建窗口时发送此消息,(此消息在函数返回之前发送)。

产生时间是窗口创建之后显示之前,同时WM_CREATE也必须是不进队列消息。

例如,当要获取系统的字体时,我们可以先向这个窗口发送 WM_CREATE消息,以后字体不会改变了,程序会保存这个系统字体的消息!以后就可以用这个字体了!如果一个程序处理这个消息,它应当返回0以使得窗口的创建过程得以继续。如果对于这个消息程序返回-1,窗口将会被销毁,并且CreateWindowEx或者CreateWindow函数将会返回一个值为NULL的句柄

wParam 这个参数未被使用

lParam 一个指向包含有窗口创建时的信息的CREATESTRUCT类型的结构体指针

如果一个应用程序处理此消息,它应该返回零继续创建窗口。如果应用程序返回–1,窗口被销毁和CreateWindowEx函数CreateWindow函数返回一个null处理或。

WM_DESTROY 窗口销毁后(调用DestroyWindow()后)

wParam 这个参数未被使用

wParam 这个参数未被使用

一个应用程序应该返回零,如果它处理这个消息。

WM_DPICHANGED 窗口的位置变化时

wParam wParam的高字包含的提示窗口的新的DPI Y轴的值。wParam的loword包含所建议的窗口新的DPI X轴的值。例如,96,120,144,或192。

lParam 一个指向RECT结构,提供尺寸和建议的窗口位置,为新的DPI缩放。

96 100%

120 125%

144 150%

192 200%

一个应用程序应该返回零,如果它处理这个消息。

WM_ENABLE 应用程序状态改变时由系统产生

wParam 指示是否已启用或禁用该窗口 禁用=FALSE

lParam 此参数不使用

一个应用程序应该返回零,如果它处理这个消息。

WM_ENTERSIZEMOVE 窗口移动或调整大小时,通过消息的wParam指定

wParam 此参数不使用

lParam 此参数不使用

一个应用程序应该返回零,如果它处理这个消息。

WM_EXITSIZEMOVE 退出窗口移动或调整大小时

wParam 此参数不使用

lParam 此参数不使用

一个应用程序应该返回零,如果它处理这个消息。

WM_GETICON 发送消息来获取窗口关联的图标句柄,返回值是一个大的或小的图标句柄,如果wm_geticon返回0,下次调用getclasslongptr功能窗口。如果返回0,然后尝试LoadIcon函数。

wParam 图标的类型

1=说明是大图标 ICON_BIG

0=小图标 ICON_SMALL

2=应用程序的小图标,如果没有使用系统提供的 ICON_SMALL2

lParam 该图标检索的DPI

返回值是一个大的或小的图标句柄,根据wParam的值。当一个应用程序接收到这个消息,它可以返回一个句柄,一个或大或小的图标,或将消息传递给DefWindowProc函数。

WM_GETMINMAXINFO 向窗口发送该消息改变窗口的大小,全屏要处理这个消息不然不是全屏底部还是有任务栏

wParam 此参数不使用。

lParam 一个指针指向一个MINMAXINFO结构,包含默认的最大尺寸和位置,和默认的最小和最大跟踪尺寸。一个应用程序可以通过设置这个结构的成员来重写默认值。

如果一个应用程序处理此消息,它应该返回零。

WM_INPUTLANGCHANGE 当应用程序的输入法发生变化时,WM_INPUTLANGCHANGE 消息发送给最顶端的受影响窗口此时可以调用ImmGetDescription取得输入法名,可以调用ImmGetIMEFileName得到该输入法的文件位置……最重要的是使用ImmGetProperty得到输入法属性

wParam:该输入法使用的字符集。提示:可以使用TranslateCharsetInfo这个API得到字符集的信息。

lParam:该输入法的HKL(KeyboardLayout——键盘布局,也被称为 Input locale identifier —— 输入区域标识)

一个应用程序应该返回非零,如果它处理这个消息。

WM_INPUTLANGCHANGEREQUEST  在窗口的焦点时,用户选择了一个新的输入语言,无论是用热键(在键盘控制面板应用程序指定)或从显示在系统任务栏,该消息可以在指定窗口中后台激活服务输入法,该消息可以在指定窗口中后台激活服务输入法

wParam

新的输入区域设置。此参数可以是以下标志的组合。

价值意义

inputlangchange_backward

0x0004热键来选择输入的地点列表上输入现场安装。这个标志不能用inputlangchange_forward旗。

inputlangchange_forward

0x0002热键来选择下一个输入在输入区域设置安装列表区域。这个标志不能用inputlangchange_backward旗。

inputlangchange_syscharset

新的输入法区域设置端口的键盘布局,可以使用系统的字符集。

lParam

输入区域设置标识符。更多信息,见语言,地点,和键盘布局。

此消息被发布,而不是发送到应用程序,所以忽略返回值。接受改变,应用程序应该把消息传递给DefWindowProc。拒绝改变,应用程序应该返回零不叫DefWindowProc。

WM_MOVE  窗体移动后

wParam

此参数不使用。

lParam

窗口客户区的左上角的X和Y坐标。低位词包含的x坐标,而高阶词包含Y坐标。

如果一个应用程序处理此消息,它应该返回零。

WM_MOVING 发送到用户正在移动的窗口。通过处理这个消息,应用程序可以监视拖动矩形的位置,如果需要的话,可以改变它的位置。

wParam

此参数不使用。

lParam

一个指向RECT结构与当前的窗口位置,在屏幕坐标。要改变拖动矩形的位置,应用程序必须改变这种结构的成员。

如果它处理这个消息,返回 TRUE

WM_NCACTIVATE 发送到一个窗口时,它需要改变非客户区显示活跃或不活跃的状态。

wParam

指示何时需要更改标题栏或图标以显示活动状态或处于活动状态时。如果一个活动标题栏或图标来绘制,wParam参数是真实的。如果一个无效的标题或图标来绘制,为false。

lParam

当一个视觉样式为这个窗口时,这个参数不被使用。

当一个视觉风格是不活跃的这个窗口,这个参数是一个手柄可选更新区域为窗口的非客户区。如果这个参数设置为1,DefWindowProc不重绘的非客户区反映状态的变化。

当wParam参数错误,应用程序应该返回true以指示系统应进行默认处理,否则返回false阻止变化。当wParam为真,返回值被忽略。

WM_NCCALCSIZE 在需要计算窗口客户区的大小和位置时发送。通过处理这个消息,应用程序可以在窗口大小或位置改变时控制客户区的内容

wParam

如果wParam为真,它指定了应用程序应显示在客户区部分包含有效信息。该系统将有效的信息复制到新的客户区内的指定区域内。

如果为FALSE,应用程序不需要指出客户区的有效部分。

lParam

如果wParam为真,指向一个nccalcsize_params结构包含的信息的应用程序可以用来计算新的大小和客户的矩形的位置。

如果为FALSE,指向RECT结构。在入口上,该结构包含了窗口的建议的窗口矩形。在退出时,该结构应该包含相应的窗口客户端区域的屏幕坐标。

如果wParam参数错误,应用程序应该返回零。

如果wParam为真,程序应该返回下列值为零或组合。

如果wParam为真,程序返回零,老客户区是保存和与新的客户区的左上角对齐。

WM_NCCREATE 窗口第一次被创建在wm_create消息发送之前发送,第一条消息

wParam

此参数不使用。

lParam

一个指针指向包含有关窗口被创建信息CREATESTRUCT结构。的成员对CREATESTRUCT CreateWindowEx函数的参数相同。

如果一个应用程序处理此消息,它应该返回TRUE继续创建窗口。如果应用程序返回false,CreateWindow或者CreateWindowEx函数将返回一个空值处理。

WM_NCDESTROY 窗口被销毁之后,最后一条消息,此消息释放内部分配的窗口的内存。

wParam

此参数不使用。

lParam

此参数不使用。

如果一个应用程序处理此消息,它应该返回零。

WM_NULL 不执行操作。一个应用程序发送的wm_null消息要发布消息,接收方窗口将忽略。,测试窗口是否在接收消息

wParam

此参数不使用。

lParam

此参数不使用。

例如,如果应用程序安装了一个wh_getmessage钩要防止消息被处理,这getmsgproc回调函数可以改变消息数wm_null所以收件人将忽略它。

另一个例子,一个应用程序可以检查一个窗口是同一点wm_null功能发送消息响应消息。

一个应用程序返回零,如果它处理这个消息。

WM_QUERYDRAGICON 当用户拖一个没有class icon的最小化窗口或发送WM_QUERYDRAGICON 消息时调用很久以前留下来的……那时候最小化变成图标,而不是到任务栏上去。历史遗留问题

wParam

此参数不使用。

lParam

此参数不使用。

应用程序应该返回一个句柄光标或图标,系统显示当用户拖动图标。光标或图标必须与显示驱动程序的分辨率兼容。如果应用程序返回了空值,系统将显示默认光标。

WM_QUERYOPEN 当用户请求将该窗口恢复到其以前的大小和位置时,发送到一个图标。历史遗留问题

wParam

此参数不使用。

lParam

此参数不使用。

如果图标可以打开,处理此消息的应用程序应该返回真;否则,它应该返回错误以防止图标被打开。

WM_QUIT 终止一个应用程序,并生成应用程序时调用postquitmessage功能。这消息使GetMessage函数返回零。

wParam

在postquitmessage函数给出的退出代码。

lParam

此参数不使用。

的wm_quit消息不关联一个窗口,因此将不会通过一个窗口的窗口过程接收。它是只检索由GetMessage或者PeekMessage函数。

不后的wm_quit消息使用PostMessage函数;使用postquitmessage。

此消息没有返回值,因为它会导致消息循环在消息被发送到应用程序的窗口过程之前终止。

评论

WM_SHOWWINDOW //窗口即将被隐藏或显示的窗口发送到一个窗口。

wParam

指示是否正在显示一个窗口。如果wParam为真,窗口被显示。如果为FALSE,窗口被隐藏。

lParam

被显示的窗口的状态。如果参数为零,该消息是因为一个ShowWindow函数发送;否则,lParam是下列值之一。

sw_otherunzoom

4该窗口被发现,因为一个最大化的窗口被还原或最小化。

sw_otherzoom

2窗口被另一个已被最大化的窗口覆盖。

sw_parentclosing

1窗口的所有者窗口被最小化。

sw_parentopening

3窗口的所有者窗口正在恢复。

这个函数显示或隐藏窗口,由指定的消息。如果一个窗口有ws_visible风格创建时,窗口接收到创建后,此消息,但在它显示。一个窗口接收到该消息时,其可见性状态由ShowWindow或显示弹出式窗口是是是功能的改变。

的wm_showwindow消息不发送下列情况:

当顶层,重叠窗口被创建的ws_maximize或ws_minimize风格。

当sw_shownormal标志被指定在ShowWindow函数。

如果一个应用程序处理此消息,它应该返回零。

WM_SIZE //大小改变后

wParam

类型大小的要求。此参数可以是下列值之一。

价值意义

size_maxhide

当一些其他窗口被最大化时,4个消息被发送到所有弹出窗口。

size_maximized

2窗口已被最大化。

size_maxshow

3消息被发送到所有弹出窗口时,一些其他的窗口已恢复到其原来的大小。

size_minimized

1窗口已被最小化。

size_restored

0窗口大小改变了,但无论size_minimized也size_maximized价值应用。

lParam

lParam的低位字指定了客户区的宽度。

lParam的高位字指定客户区的新高度。

如果SetScrollPos或MoveWindow函数调用子窗口的结果是wm_size消息,或brepaint bRedraw参数应该是零可以使窗口被重画。

虽然一个窗口的宽度和高度是一个32位的值,参数lParam包含只有低阶16位各。

如果一个应用程序处理此消息,它应该返回零。

WM_SIZING 当用户正在改变某一窗口的尺寸时

wParam

正在大小的窗口的边缘。此参数可以是下列值之一。

价值意义

wmsz_bottom

6底部边缘

wmsz_bottomleft

7左下角

wmsz_bottomright

8右下角

wmsz_left

1左边缘

wmsz_right

2右边缘

wmsz_top

3顶边

wmsz_topleft

4左上角

wmsz_topright

5右上角

lParam

拖动矩形的一个指向RECT结构坐标与屏幕。要更改拖动矩形的大小或位置,应用程序必须更改此结构的成员。

如果它处理这个消息,返回TRUE

WM_STYLECHANGED 一个或多个风格已经被改变时wParam

指示窗口的样式或扩展窗口样式是否已更改。此参数可以是下列值中的一个或多个。

价值意义

gwl_exstyle

- 20扩展窗口样式已更改。

gwl_style

16窗口样式已更改。

lParam

一个指向stylestruct结构包含了窗口的新方式。一个应用程序可以检查样式,但不能更改它们。

一个应用程序应该返回零,如果它处理这个消息。

WM_STYLECHANGING 将要改变一个或多个窗口风格时

wParam

指示窗口的样式或扩展窗口样式是否正在更改。此参数可以是下列值中的一个或多个。

价值意义

gwl_exstyle

20扩展窗口样式正在改变。

gwl_style

16窗口风格正在改变。

lParam

一个指针指向一个包含stylestruct结构提出了新的风格的窗口。一个应用程序可以检查样式,如果必要的话,改变它们。

一个应用程序应该返回零,如果它处理这个消息。

WM_THEMECHANGED 在主题更改事件后向每一个窗口播放。主题改变事件的例子是激活一个主题,一个主题的失活,或从一个主题过渡到另一个主题。

wParam

此参数是保留的。

lParam

此参数是保留的。

请注意这个消息是由操作系统发布的。应用程序通常不发送此消息。

主题是控件外观的规范,以便控件的视觉元素从它的功能性。

释放一个现有的主题处理,叫closethemedata。为了获得一个新的主题处理,使用openthemedata。

继wm_themechanged广播,任何现有的主题句柄无效。主题感知窗口应该释放并重新打开其任何预先存在的主题,当它接收到的wm_themechanged消息处理。如果openthemedata函数返回null,窗户都漆unthemed。

如果一个应用程序处理此消息,它应该返回零。

WM_USERCHANGED 在用户登录或关闭后发送到所有的窗口。当用户登录或关闭时,系统会更新用户特定的设置。系统在更新设置后立即发送此消息。

wParam

此参数不使用。

lParam

此参数不使用。

一个应用程序应该返回零,如果它处理这个消息。

WM_WINDOWPOSCHANGED 一个窗口的大小,位置,或在Z顺序发生变化由于调用SetWindowPos函数或其他的窗口管理函数。

wParam

此参数不使用。

lParam

一个指向windowpos结构包含有关窗口的大小和位置信息。

默认情况下,这个函数将wm_size和wm_move消息给窗口。的wm_size和wm_move消息不如果一个应用程序处理wm_windowposchanged消息没有叫DefWindowProc送。它是更有效地执行任何移动或尺寸变化处理的wm_windowposchanged消息中没有叫DefWindowProc。

如果一个应用程序处理此消息,它应该返回零。

WM_WINDOWPOSCHANGING 窗口大小,位置,或在Z顺序发生改变时触发。

wParam

此参数不使用。

lParam

一个指向windowpos结构包含有关窗口的大小和位置信息。

一个与ws_overlapped或ws_thickframe风格的窗口,这个函数发送消息给窗口wm_getminmaxinfo。这样做是为了验证新窗口的位置和大小和执行cs_bytealignclient和cs_bytealignwindow客户端方式。由于没有通过wm_windowposchanging消息给DefWindowProc函数,应用程序可以覆盖这些默认值。

当这个消息被处理,修改任何的价值windowpos影响窗口的大小,位置,或放置在Z顺序。应用程序可以通过设置或清除在windowpos标志成员的适当位防止窗口的变化。

如果一个应用程序处理此消息,它应该返回零。

你可能感兴趣的:(Windows窗口的通知消息)