Windows窗口绘制、窗口类型小结
#define WS_POPUP 0x80000000L
#define WS_CHILD 0x40000000L
发布日期:2021-10-20 09:40:04
浏览次数:8
分类:技术文章
本文共 1173 字,大约阅读时间需要 3 分钟。
一、绘图
1、更新区域(update region)
1)更新区域是窗口中过期或无效,需要重绘的区域。系统依靠更新区域向应用程序发送WM_PAINT消息。
WM_PAINT产生的条件:有需要更新的区域,并且消息队列中没有其它消息时。
2)相关API:
InvalidateRect/InvalidateRgn:无效化一块区域;
ValidateRect/ValidateRgn:有效化一块区域,将这块区域从更新区域中去掉。
GetUpdateRect/GetUpdateRgn:获得更新矩形/区域。
UpdateWindow:如果更新区域非空,立即发送WM_PAINT消息;
RedrawWindow:不管更新区域是否为空,立即发送WM_PAINT消息。
二、窗口
1、窗口的类型
Windows窗口分为3种类型:
#define WS_OVERLAPPED 0x00000000L
Child窗口是其它窗口的子窗口;
popup窗口是弹出窗口,适合做主窗口;
overplapped是重叠窗口,默认有标题栏和边框。即使显示去掉WS_CAPTION和WS_BORDER这些风格,Windows还是会加上标题栏和边框。适合做主窗口。重叠窗口是top-level窗口,不能成为子窗口。
2、窗口与窗口的关系
1)Destop窗口
桌面窗口,一个特殊的窗口,可以理解为就是桌面。
2)top-level窗口
没有WS_CHILD属性的窗口,父窗口一般为Desktop或者NULL。Windows发送某些消息的时候一般要求是top-level窗口,如HWND_BROADCAST、WM_DISPLAYCHANGE等。
3)子窗口
具有WS_CHILD属性的窗口为子窗口。子窗口只能出现在父窗口的客户区内。如果要使一个窗口随另一个窗口一起移动,可以考虑使其成为另一个窗口的子窗口。需要注意的是,当父窗口移动时,子窗口不会收到WM_MOVE等消息,因为子窗口相对于父窗口并没有移动。
4)parent和owner关系
这个暂时还没发现实际中owner有啥用,主要是parent-child关系常用。
3、常用窗口风格
WS_CLIPSIBLINGS:用于兄弟窗口,即有相同父窗口的子窗口。设置了该风格的子窗口需要重绘(收到WM_PAINT消息)时,将剪裁其它子窗口的重叠部分,被遮挡的区域不进行重绘。如果没有这个属性,子窗口绘制时可能会绘制到兄弟窗口的客户区上。因此所有的top-level窗口都具有这个属性。
WS_CLIPCHILDREN:用于父窗口。设置了这个属性,当父窗口进行绘制时,子窗口的区域父窗口不负责进行绘制,子窗口自行绘制。
转载地址:https://blog.csdn.net/up2wing/article/details/17486041 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月08日 14时54分29秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
配置MySQL主从复制
2019-04-27
CI框架如何删除地址栏的 index.php
2019-04-27
expires与etag控制页面缓存的优先级
2019-04-27
取消掉Transfer-Encoding:chunked
2019-04-27
HTTP协议中的Tranfer-Encoding:chunked编码解析
2019-04-27
JavaScript面向对象编程
2019-04-27
在Javascript中使用面向对象的编程
2019-04-27
PHP Webservice的发布与调用
2019-04-27
php反射类 ReflectionClass
2019-04-27
为 PHP 应用提速、提速、再提速
2019-04-27
Linux下gedit显示行号
2019-04-27
《Advanced PHP Programming》读书笔记
2019-04-27
让我们谈谈RAID
2019-04-27
jQuery日期选择器插件date-input
2019-04-27
PHP使用curl_multi_add_handle并行处理
2019-04-27
NP问题
2019-04-27
AT&T与Intel汇编语言的比较
2019-04-27
javascript解析json
2019-04-27
WinDbg安装与使用
2019-04-27
推荐阅读的多核编程技术书籍
2019-04-27