一般的是横的属性页,竖的该怎么办呢,请详细说明

解决方案 »

  1.   

    sigh,努力了好长时间。
    本来打算简单地改变tab的属性就好了,结果这样试验,效果不好,尤其tab的文字设置不对,试图重新画,好像也不好,最后,采用了重新创建tab的方法。
    对了,方法就是要重载CPropertySheet::OnInitDialog()这个函数,然后在其中做手脚啊。例子代码如下:BOOL CMyPropertySheet::OnInitDialog() 
    {
    /*
    // 试图直接改变tab的属性,结果,可以做到,然而效果不好。
    CTabCtrl* ptab = (CTabCtrl*)GetDlgItem(AFX_IDC_TAB_CONTROL);
    if (ptab != NULL)
    {
    ptab->ModifyStyle(0, TCS_VERTICAL, 0);
    }
    */ // try to re-create a tab ctrl
    // destroy the old one
             //       注意,在删除tab之前,必须确保它没有子控件,否则,要进行特殊处理
    RECT rect;
    DWORD dw = WS_CHILD | WS_VISIBLE;
    CTabCtrl* pOld = (CTabCtrl*)GetDlgItem(AFX_IDC_TAB_CONTROL);
    if (pOld != NULL)
    {
    pOld->GetWindowRect(&rect);
    ScreenToClient(&rect);
    dw = pOld->GetStyle();
    pOld->DestroyWindow();
    }
    // now, try to create a new
    m_tab.Create(dw | TCS_VERTICAL, rect, this, AFX_IDC_TAB_CONTROL);
    // 处理字体
    CFont* pFont = GetFont();
    if (pFont != NULL) m_tab.SetFont(pFont); BOOL bResult = CPropertySheet::OnInitDialog();

    return bResult;
    }
      

  2.   

    就是偷梁换柱了。注意,换的时候,tab控件的id不能改变。
      

  3.   

    http://expert.csdn.net/Expert/topic/2397/2397260.xml?temp=.9214441
    可否把你的源程序发给我一份,谢谢了
    [email protected]
      

  4.   

    m_tab未定意,可是定义CSheet m_tab又说
    error C2460: 'm_tab' : uses 'CSheet', which is being defined
            F:\VC++\\TheApp.cpp(5) : see declaration of 'CSheet'
    请问为什么
      

  5.   

    你要在你的sheet类里面声明如下的变量:
    CTabCtrl m_tab;
      

  6.   

    可是CTabCtrl类是什么呀,我用
    class CSheet : public CPropertySheet
    {
    public:

    CPropertyPage Page1;
    CPropertyPage Page2;
    CPropertyPage Page3;
    CPropertyPage Page4;
    CMenu  Menu;
    CSheet m_tab;
             ~~~~~~~~~~~~~如此定义出错,如你所说则不知道CTabCtrl 是什么
             ........
    }