默认的标签的位置,都是居左的,我想让它居中,或者能获得具体的居中位置,更好,请问有什么办法?谢谢回答

解决方案 »

  1.   

    不知道MFC的PropertSheet支持这个不,。
      

  2.   

    继承CPropertySheet,子类化自己的,然后自己OnDraw等来画对应的标签
      

  3.   

    谢谢楼上的回答,那继承tabctrl,tabctrl能不能修改呢?
      

  4.   

     if ((lpdis->itemState & ODS_SELECTED) && 
            (lpdis->itemAction & (ODA_SELECT | ODA_DRAWENTIRE))) 
        { 
            //Make the color of text of the selected tab to be BLUE. 
            pDC->FillSolidRect(rect,RGB(255,255,255));//修改选中背景颜色

    pDC->SetTextColor(RGB(0,0,0)); //修改该选中文字颜色
    pDC->DrawText(tci.pszText, &rect, DT_CENTER|DT_SINGLELINE|DT_VCENTER);//按格式输出标签文字
            //pDC->TextOut(rect.left+5, rect.top+5, tci.pszText); 
        }
      

  5.   

    没有简单的方法,只能在OnDraw中自绘标签,网上有这样的类,你可以下载下来看看,CCoolTabCtrl这个类可以实现标签在上方还是在下方,主要还是OnDraw
      

  6.   

    http://www.vckbase.com/code/viewcode.asp?id=518这是个实现VC界面的例子,里面有个CCoolTabCtrl类,就可以实现标签的启动,你可以研究下
      

  7.   

    CTabCtrl&tabCtrl   建立标签控制对象结构  
       
      Create   建立标签控制并绑定对象  
       
      标签控制CTabCtrl::Create的调用格式如下:  
       
      BOOL   Create(   DWORD   dwStyle,   const   RECT&   rect,   CWnd*   pParentWnd,   UINT   nID   );  
       
      其中参数dwStyle用来确定标签控制的风格;rect用来控制标签的大小和位置;pParentWnd用来确定标签控制的父窗口句柄;nID用来确定标签控制的标识符。
     
    上面这句话中的rect用来控制标签的大小和位置;这句是不是意思说,我不用自绘就可以自己修改标签的位置了?
      

  8.   

    那个rect是整个tabctrl控件的创建位置,要不你可以动态创建一个就知道