如题,比如CTabControl中有三个属性页,在适当情况下我要禁用某个标签页,就是让这个标签上的字灰化,不能点击它,请问各位大虾,怎么实现这个功能,我感觉这个问题应该不难,但是我试了好几种方法了都不行。

解决方案 »

  1.   

    你可以自己派生一下CTabCtrl控件,或者像我一样自己从CWnd派生全新的实现一个TabCtrl控件,你想怎么控制就怎么控制!
      

  2.   

    TCN_SELCHANGING返回TRUE可以使选中无效,字体变灰有些难度
      

  3.   

    我是自己定义了这样一个类class CParamTabCtrl : public CTabCtrl,请问这样的话,我怎么禁用某个属性页?
      

  4.   

    MSDN中就有Periodicals 98 中 
    Microsoft Systems Journal的 AugDisabTab Tab页也可以disable
      

  5.   

    class CParamView : public CFormView
    {
    public:
    CParamTabCtrl m_nParamTab;//CParamTabCtrl类派生于 public CTabCtrl
    protected:
             CParamText     m_ParamText;//自己定义的对话框类
    CParamPLT      m_ParamPLT;//自己定义的对话框类
    }void CParamView::OnInitialUpdate() 
    {
    CFormView::OnInitialUpdate();

    m_ParamText.Create(IDD_PARAM_TEXT, &m_nParamTab);
    m_nParamTab.AddTab(&m_ParamText,IDS_PARAM_TEXT);         m_ParamPLT.Create(IDD_PARAM_PLT, &m_nParamTab);
    m_nParamTab.AddTab(&m_ParamPLT,IDS_PARAM_PLT);

    }void CParamView::FillComponentList(CObList &list)
    {
           //若在这个禁用标签m_ParamPLT,使它的标题变成灰色,不能点击,怎么办?而m_ParamPLT(基于对话框的类)没有disable这个属性
    }
      

  6.   

    给你提供一点建议, 上面的按钮是CSpinButtonCtrl, 可以在自己定义一个CSpinButtonCtrl,这样就好控制的多了, 我想具体实现代码也没什么太难的
      

  7.   

    那怎么将自己定义的CSpinButtonCtrl与CTabControl属性页联系起来啊?是不是我不定义CSpinButtonCtrl,CTabControl中也有这样的一个变量?
      

  8.   

    对楼主表示非常的抱歉,我以为你是要修改那两个想左右指的箭头按钮呢!
    我这里有一个修改tab的demo 如果你要的话给我油箱,不过它没有你想要的功能, 可以参考它是如何修改的!
      

  9.   

    用page.ShowWindow(SW_HIDE);来屏蔽啊
      

  10.   


    ronmal(新奇天空):用ShowWindow(SW_HIDE)会将整个属性页屏蔽掉,标题也看不到了,我是想让标题能看见,而且变成灰色,不能点击