全球旧事资料 分类
的第六个参数就是这个id。api函数CreateWi
dow和CreateWi
dowEx里的那个HMENU类型的参数r
,当窗口的风格里有WM_CHILD时,它不是指的菜单句柄,而是该窗口的id。r
r
IDFirst和
IDLast参数指明了:如果一个子窗口的id值大于等于
IDFirst并且小于等于
IDLast,在这个函数中才会给这个子窗口发送WM_SIZEPARENT消息,这个子窗口才能参与父窗口客户区的分配。r
r
(2)
IDLeftOverr
r
前面说过,有一个特定的子窗口,它不响应WM_SIZEPARENT消息。只有当其它的子窗口都分配完了,它才来捡取父窗口客户区里剩下的那块。
IDLeftOver正是这个子窗口的id。它也必须大于等于
IDFirst并且小于等于
IDLast。r
r
(3)lpRectClie
tr
r
这是一个指向RECT结构数据的指针。这个RECT结构里存放的正是父窗口客户区的初始可用区域。随着在该函数里依次给各个子窗口发送WM_SIZEPARENT消息,每个响应这个消息的子窗口都会切去自己所占据的部分。最后剩下的部分,就是id为
IDLeftOver的子窗口将要占据的区域了。这个参数可以为NULL,这时初始的可用区域就是整个父窗口客户区。r
r
(4)
Flag和lpRectParamr
r
这两个参数放在一起讲比较好。
Flag是该函数的功能标志,它可以有三个值:reposDefault,reposQuery和reposExtra。r
r

Flag等于reposDefault时,Repositio
Bars函数的功能是这样的:依次给id介于
IDFirst和
IDLast之间并且不等于
IDLeftOver的子窗口发送WM_SIZEPARENT消息,每个响应这个消息的子窗口从lpRectClie
t所指的结构里切去自己所占据的部分,并且将自己的大小和位置调整到自己所占据的区域的大小,最后Repositio
Bars函数还将id为
IDLeftOver的子窗口的大小和位置调整到被其他子窗口切剩的可用区域内,使这个子窗口正好完全覆盖最后的可用区域。这种情况下lpRectParam不用,可以为NULL。r
r

Flag等于reposQuery时,Repositio
Bars函数的功能是这样的:依次给id介于
IDFirst和
IDLast之间并且不等于
IDLeftOver的子窗口发送WM_SIZEPARENT消息,每个响应这个消息的子窗口从lpRectClie
t所指的结构里切去自己所占据的部分,但是他们并不调整自己的大小和位置,最后Repositio
Bars函数并不调整将id为
IDLeftOver的子窗口的大小和位置,而是根据bStretch的值来做动作:如果bStretch为TRUE,那么Repositio
Bars函数把最后剩下的可用区域拷贝到lpRectParam指向的RECT结构里;如果bStretch为FALSE,那么Repositio
Bars函数把所有其他子窗口占用掉的可用区域的高和宽要所有的子窗口都紧排在一起,形成一个大的矩形,这个值才有意义拷贝到lpRectParam指向的RECT结构的bottom和right成员里,其top和left成员被置零。使用这个
Flag值来调用Repr
好听全球资料 返回顶部