我想在对话框程序里编写一个tab control控件程序,请问我想控制tab control和其中属性页在对话框中的位置大小,在哪个函数中写,用哪些语句,谢谢了?

解决方案 »

  1.   

    如果我想让tab control和属性页都最大化怎么写?
      

  2.   

    在对话框中的OnSize函数中写,将tab  control移到对话框的client区域即可。同时,也要对tab control的子窗口进行移动。
      

  3.   

    我做过类似的,一个主窗口里有4个Tab窗口,可以完美调节大小void CScoreKeeperDlg::OnSize(UINT nType, int cx, int cy) 
    {
    CDialog::OnSize(nType, cx, cy);
    // 我使用开源的EASYSIZE来管理主窗口缩放
    UPDATE_EASYSIZE;

    // TODO: Add your message handler code here
    if (m_tabShow.GetSafeHwnd() == NULL)
    {
    return;
    } // 缩放后EASYSIZE只能缩放主窗口,每个Tab窗口我都手动缩放一遍
    CRect rt;
    m_tabShow.GetClientRect(&rt);
    CRect item;
    m_tabShow.GetItemRect(0,item);
    rt.top = rt.top + item.bottom; m_pDlgA->SetWindowPos(NULL, rt.left, rt.top, rt.right, rt.bottom, 0);
    m_pDlgB->SetWindowPos(NULL, rt.left, rt.top, rt.right, rt.bottom, 0);
    m_pDlgC->SetWindowPos(NULL, rt.left, rt.top, rt.right, rt.bottom, 0);
    m_pDlgTotal->SetWindowPos(NULL, rt.left, rt.top, rt.right, rt.bottom, 0);

    }
      

  4.   

    如果你的 Tab 很多的话,那么你可以学 NSIS 那样,在 Tab 上放一个不可见的 Static 控件,加上 SS_WHITERECT 等这些基本上没啥作用的样式。这个控件是每个 Tab 对话框的参照位置。当 Tab 改变大小,对应调整这个 Static 的大小,并发送一个 Tab 选择改变的通知 TCN_SELCHANGE 让每个对话框自己去获取这个参照的 Static 控件的位置来调整尺寸,比逐个更新方便多了。