被MoveWindow中的两个参数搞昏了,求解释,有关问题如下

被MoveWindow中的两个参数搞昏了,求解释,问题如下:
被MoveWindow中的两个参数搞昏了,求解释,有关问题如下

上面图中, 最外面的黑框是主面板 宽 550 , 里面分别建立了left, center right 三个面板,其中left 设宽260,right设宽150 ,其余的都归center panel 
但是在移动这些窗体的时候遇到问题

首先问一个问题: 
Create(……,lpszwindowName,dwStyle, CRect(left, top ,right ,bottom),……);
这个创建窗体的函数create中的那个CRect()中是left, top , right, bottom 坐标值没有错吧?

MoveWindow(CRect(x,y,width, height); 
这个movewindow中的CRect标注的width, height 参数应该是指它的长度和宽度吧? 
以上都是MSDN摘下的原型

那么我现在要移动centerpanel 就需要确定它MoveWindow(CRect(x,y,width, height))的中参数widht咯, 

移动是在外面的那个住panel中的onSize中进行的,所以这里使用的
CRect rc;
GetClientRect(rc); rc应该指的是主panel的rc吧? 就是说 rc.width = 550 是吧 
那么
MoveWindow(260,0,rc.Width()-260-150,rc.Height()); 这个对还是下面的对?
还是
MoveWindow(260,0,rc.Width()-150,rc.Height());

MoveWindow() 的第三个参数不是不是宽度么? 不是从第一个参数指定的坐标位置开始算的宽度么? 
如果是 应该就是 rc.Width()-260-150, 但是我实际这么操作的时候就报错, 而rc.Width()-150不减那个260的时候就没有报错 

不减260, 只减150? 那rc.with()-200 不就是 550 - 150= 400, 那有这么多? 
left 占260 ,right 占 150 剩下的 不是 550-260-150 = 140! 才140 啊, 晕死掉了

咋回事啊? 

------解决方案--------------------
width = right - left;
height = bottom - top;
------解决方案--------------------
void MoveWindow( LPCRECT lpRect, BOOL bRepaint = TRUE );

lpRect
left:左上角x位置;顶层窗口,相对于屏幕;子窗口,相对于父窗口客户区
top:  左上角y位置
right: 新的宽度值,必须大于0
bottom: 高度值,必须大于0
------解决方案--------------------
MoveWindow(CRect(x,y,width, height); 
这个movewindow中的CRect标注的width, height 参数应该是指它的长度和宽度吧? 

看到这里我想楼主应该是理解错了,MSDN里看 CRect 所有的构造函数,你就应该清楚了

CRect( 
   int l, 
   int t, 
   int r, 
   int b