Windows窗口程序

WM_NCHITTEST 是 Windows 消息机制中非常重要的一个消息,在 Windows 窗口过程中使用频繁。它通常被用来实现各种窗口操作,例如改变窗口大小、位置或拖动窗口等。

Windows 窗口过程是一个事件处理程序,专门处理各种窗口相关的事件,包括鼠标事件、键盘事件、消息事件等。在处理 WM_NCHITTEST 消息时,窗口程序通常会检查鼠标的位置以及鼠标位置对应的窗口区域,并返回一个标志值指示鼠标点击了什么窗口区域。

在处理 WM_NCHITTEST 消息时,窗口程序通常会返回以下一些可选标志值之一:

  • HTCLIENT:当鼠标事件在窗口内,但不在任何非客户区域时使用该标志;
  • HTTRANSPARENT:事件是透明的,该窗口将忽略它并将其传递给其后面的窗口;
  • HTTOPLEFTHTTOPRIGHT、 HTBOTTOMLEFT、 HTBOTTOMRIGHT: 鼠标事件在窗口的对应区域上,表示应改变窗口大小;
  • HTCAPTION:鼠标事件在窗口标题栏上,允许窗口被拖动;
  • HTMENUHSCROLLVSCROLL 等: 鼠标事件在窗口的非客户区域时,表示鼠标事件发生在菜单、滚动条等控件上。

在窗口程序中,可以处理 WM_NCHITTEST 消息并返回窗口区域标志值,以决定如何处理消息。例如,如果鼠标事件在窗口的标题栏上,则可以将窗口移动到新的位置或将其最大化。如果鼠标事件发生在窗口的客户区域内,则可以执行客户区域内的相应操作。

  1. WM_PAINT:一个窗口需要重绘自己时发送该消息。窗口程序可以通过处理该消息来执行绘图操作。

  2. WM_SIZE:窗口的大小发生变化时发送该消息。窗口程序通常在处理该消息时调整窗口的内容以适应新的大小。

  3. WM_MOUSEMOVE:当鼠标在窗口内移动时发送该消息。窗口程序可以检查鼠标位置并采取相应的行动。

  4. WM_LBUTTONDOWN 和 WM_RBUTTONDOWN:当鼠标左键或右键在窗口内按下时发送该消息。窗口程序可以在处理该消息时执行相应的操作。

  5. WM_COMMAND:当一个控件或菜单项被选中或点击时发送该消息。窗口程序可以通过处理该消息来执行相应的操作。

  6. WM_CLOSE:当用户关闭窗口时发送该消息。窗口程序通常在处理该消息时执行清理操作,并关闭窗口。

  7. WM_SETFOCUS 和 WM_KILLFOCUS:当一个窗口获取或失去键盘焦点时发送该消息。窗口程序可以在处理该消息时执行一些特殊的动作。

  8. WM_TIMER:当一个定时器事件发生时发送该消息。窗口程序可以在处理该消息时执行相应的操作,例如更新窗口上的时间或动画效果。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值