如上图所示有多个Tab,每按一个Tab会在下面显示相应的窗口。
在窗口的右边有一个贴了图片的客户区。
但当TAB数量达到8个时客户区会变大。
这是为什么呢?

解决方案 »

  1.   

    初始图形如下所示:------------------------------
    tab1| tab2|tab3|tab4|.........
    ------------------------------
                            |   |
                            | 客|
        显示相应的窗口       |   |
                            | 户|
                            |   |
                            | 区|
    ------------------------------
      

  2.   

    // 以下是的客户区贴图方法
    void CJPropertySheet::OnPaint()
    {
    CPaintDC dc(this); // device context for painting
    // TODO: 在此处添加消息处理程序代码
    // 不为绘图消息调用 CPropertySheet::OnPaint()
    CBrush br(RGB(144, 144, 144));
    CRect rcPage;
    GetPage(0)->GetWindowRect(rcPage);
    ScreenToClient(&rcPage);
    rcPage.left -= 1;
    rcPage.top -= 1;
    rcPage.right += 1;
    rcPage.bottom += 1;
    dc.FrameRect(&rcPage, &br); //
    CRect rc;
    m_lstSheet.GetWindowRect(&rc);
    ScreenToClient(&rc);
    rc.left -= 1;
    rc.top -= 1;
    rc.right += 1;
    rc.bottom += 1;
    dc.FrameRect(&rc, &br); DrawPageCaption(m_strActiveTitle, &dc, RGB(0, 0, 0));
    }
      

  3.   

    主要是GetPage(0)->GetWindowRect(&rcPage);这个的坐标变化了
      

  4.   

    终于搞清楚了,自己来回答吧
    解决方法:
    把Tab的属性设置了单行模式就OK了。