当前位置:C++技术网 > 资讯 > 窗口特性知识点集合

窗口特性知识点集合

更新时间:2015-06-25 19:17:08浏览次数:1+次

GetWindowRect获取的矩形区域是基于屏幕坐标的,子窗口也是。
ScreenToClient 和 MapWindowPoints将子窗口矩形的屏幕坐标转换为父窗口的客户区坐标.
GetClientRect 获取的矩形区域是基于窗口自己的客户区域的坐标 .
MapWindowPoints主要用在屏幕布局和窗口布局不一致时的坐标转换。

进程能设置前置窗口的条件
1.进程是前置进程
2.进程由前置进程启动
3.进程接收到最新的输入事件
4.没有前置进程
5.前置进程正在被调试
6.前置未锁。
7.前置锁时间失效。
8.没有活动菜单。

拥有窗口
1.被拥有的窗口始终在拥有者的Z轴上方。
2.当拥有者窗口销毁后系统自动销毁被拥有的窗口。 3.当拥有者窗口最小化时,被拥有窗口将隐藏。


★只有层叠和弹出窗口才能是拥有者窗口。当使用WS_OVERLAPPED或WS_POPUP风格时,通过指定拥有者窗口句柄为父窗口参数来创建被拥有窗口。当然,拥有者窗口必须是层叠和弹出窗口。如果父窗口指定为子窗口,系统将拥有关系指定为子窗口的最高级父窗口为拥有者窗口。一旦被拥有窗口创建,应用不能够转移拥有关系到其他窗口。

★对话框窗口和消息窗口在创建时默认为被拥有窗口。

★可以通过GetWindow函数带上GW_OWNER标志来获取拥有者窗口。

★系统维持一个Z轴单链表。根据最顶层、最高级别和子窗口来添加窗口到z轴上。

★禁用的窗口不能从键盘和鼠标接受消息,但是可以从其他窗口或者其他应用或者系统接受消息。

★隐藏的窗口可以处理系统或者其他窗口发来的消息,但不能处理用户输入和显示输出。隐藏拥有者窗口并不影响被拥有的窗口可视状态。但是父窗口隐藏和显示会同步隐藏和显示子窗口。最小化父窗口不影响子窗口可视状态,只不过子窗口随父窗口一起最小化,WS_VISIBLE风格并不会改变。隐藏就移除这个风格,显示就增加这个风格,窗口绘制时只根据风格来绘制。

★CloseWindow用来最小化窗口。

★SetWindowPlacement不仅可以显示窗口,而且还可以重写系统最大化最小化和恢复窗口时的位置。或者处理WM_GETMINMAXINFO消息来重写最大化最小化窗口大小和位置。

★默认创建窗口位置:如果没有顶层窗口,则创建在相对于屏幕左上角,否则创建的位置相对于最近创建顶层窗口的位置。默认大小:如果宽度和高度都默认,则重新计算大小,但是如果应用已经创建了其他顶级窗口,系统将指定窗口大小将基于最近创建的顶层窗口的大小。用默认大小创建子窗口或者弹出窗口,系统将窗口大小设置为系统默认的最小大小。

★最小和最大跟踪大小是使用边框拖动能够调节的最小和最大窗口大小。