zoukankan      html  css  js  c++  java
  • 窗口绘制存在的问题

    在做一些异形窗口时,往往会响应以下NC消息:

    WM_NCPAINT, WM_NCACTIVATE, WM_NCLBUTTONDOWN, WM_NCMOUSEMOVE。

    但是,对于NC区的处理方式会受到系统版本及桌面主题的影响。最明显的一个例子是,

    在XP和WIN7下,窗口标题栏的高度是不同的。正因为如此,采用响应NC消息进行窗口自绘是

    极其麻烦。

    另一种可行的方法是,将窗口的类型设置成无边框的,那么整个窗口区域都是客户区,客户区的

    绘图操作完全由程序员自己控制,不会受到系统、桌面主题的影响。采用这个方法的缺点在于,

    失去了标题栏的拖动功能。其实,只要响应WM_NCHITTEST,然后在适当的区域返回HTCAPTION,

    就可以让窗口的某个区域具有标题栏的拖动作用。需要注意的是,如果某个区域的HITTEST返回

    HTCAPTION,那么这个区域将不会收到WM_LBUTTONDOWN,WM_MOUSEMOVE。取而代之的是,

    WM_NCLBUTTONDOWN, WM_NCLBUTTONUP。

     

     

    PS:到目前为止我还是不会响应WM_NCLBUTTONUP。

  • 相关阅读:
    IntelliJ Idea 快捷键列表
    mysql索引类型和方式
    基本git指令
    idea中deBug方法
    BeanUtils.copyProperties(A,B)使用注意事项
    MySQL字段类型
    JAVA常识1
    Redis在windows下的安装下载
    Netty
    IDEA工具
  • 原文地址:https://www.cnblogs.com/fwycmengsoft/p/3026256.html
Copyright © 2011-2022 走看看