ositio
Bars的目的不是要重排子窗口,而是要看看,假如重排子窗口的话,这些子窗口将占去多大一块,最后剩下的可用区r
域在什么位置等等信息。r
r
当
Flag等于reposExtra时,该函数的功能和
Flag等于reposDefault时差不多,有点小小的区别。此时需要用到lpRectParam。前面说过,当
Flag等于reposDefault时,Repositio
Bars函数将在最后把id为
IDLeftOver的子窗口的大小和位置调整到被其他子窗口切剩的可用区域内,使这个子窗口正好完全覆盖最后的可用区域。而当
Flag等于reposExtra时,Repositio
Bars在调整id为
IDLeftOver的子窗口的大小和位置前,还要用lpRectParam来对最后剩下的可用区域做修正。假设lpRect指向的是最后的可用区域,那么这个修正是这样进行的:r
r
r
lpRectgttoplpRectParamgttopr
lprectgtleftlpRectParamgtleftr
lpRectgtrightlpRectParamgtrightr
lpRectgtbottomlpRectParamgtbottomr
r
通过这样的修正,可以使最后剩下的可用区域不被id为
IDLeftOver的子窗口占满,而是空出一些地方来留作他用。r
(5)bStretchr
r
这个参数上面已经提到一点它的作用。它主要是提供给各个响应WM_SIZEPARENT消息的子窗口用的,子窗口例如工具栏,状态条等在决定自己将从父窗口客户区的可用空间里划走多少时,这个参数也是个判断的依据。详细可以参阅工具栏和状态条响应WM_SIZEPARENT的函数O
SizePare
t。r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
对话框中添加toolbar20080804154003转载标签:客户区分类:学习r
step1r
在资源编辑器中插入工具条资源,并为每个按钮创建ID。将它命名为IDC_TOOLBAR1r
step2r
在对话框变量中添加一个工具条变量。r
CToolBarm_w
dToolBarr
r
step3r
在CDialogO
I
itDialog中添加如下代码:r
r
创建工具条并调入资源r
ifm_w
dToolBarCreatethism_w
dToolBarLoadToolBarIDR_TOOLBAR1r
r
TRACE0quotFailedtoCreateDialogToolbar
quotr
E
dDialogIDCANCELr
r
如果在添加其他控件时为toolbar预留了位置那么直接调用这一句r
r
Repositio
BarsAFX_IDW_CONTROLBAR_FIRSTAFX_IDW_CONTROLBAR_LAST0r
r
就可以了,下面可以省略。r
r
r
r
若没有预留位置则调用下面的代码r
CRectrcClie
tOld旧客户区RECTr
CRectrcClie
tNew加入TOOLBAR后的CLIENTRECTr
GetClie
tRectrcClie
tOldr
在客户区对控制栏重新定位和重新设置大小,然后用reposQuery标志来计算新客户区大小,并不画出工具栏r
r
r
重新计算RECT大小r
Repositio
BarsAFX_IDW_CONTROLBAR_FIRSTAFX_IDW_CONTROLBAR_LAST0reposQueryrcClie
tNewr
r
所有的子窗口将被移动,以免被TOOLBAR覆盖r
计算r