FTP搜索工具学习笔记――属性页控件类

利用MFC类库中的CTabCtrl类为基础,实现属性页控件类。
  
   class CPropertyPages:public CObject    ///////描述属性页页面
   {
        public:
               CString m_strTitle;   //属性页标签名
               CDialog *m_pDialogPage;     //属性页对话框指针
               CRect   m_Rect;           //属性页区域
   }
 
   class CSheetTabCtrl::CTabCtrl    ////////属性页类 
   { 
        public:
               CRect m_Rect;      //保存属性页区域
               UINT  m_nCtrlID;   //属性页ID
               int   m_nPages;    //记录属性页控件上页面的个数
               int   m_nActPage;  //用来记录当前活动页面的索引
               CObArray m_Dialogs;   //所有属性页面的指针 
   }
  
为了将属性页控件上的制定页面设置为活动转台,为CSheetTabCtrl添加成员函数
SetActivePage(int nPage)。
   
   int CSheetTabCtrl::SetActivePage(int nPage)
   {
       CPropertyPages  *pPropPage;     //临时指针
       int   nN;
       if((nPage<0)||(nPage>m_nPages))
           nPage=0;
       //得到当前活动页面指针
       pPropPage=(CPropertyPages *)m_Dialogs.GetAt(m_nActPage);
       //将当前活动页面隐藏
       nN=pPropPage->m_pDialogPage->SetWindowPos(NULL,
                 pPropPage->m_Rect.left,pPropPage->m_Rect.top,0,0,
                   SWP_HIDEWINDOW|SWP_NOSIZE);
       //得到指定页面指针
       pPropPage=(CPropertyPages *)m_Dialogs.GetAt(nPage);
       //将指定页面显示出来
       nN=pPropPage->m_pDialogPage->SetWindowPos(NULL,
                 pPropPage->m_Rect.left,pPropPage->m_Rect.top,0,0,
                   SWP_SHOWWINDOW|SWP_NOSIZE);
       m_nActPage=nPage;      //保存当前活动页面索引
       SetCurSel(m_nActPage);    //设置选中状态
  
       return TRUE;
   }
当单击属性页控件是相应标签时,只要调用此函数就可以将相应页面设置为活动状态。
 
 
 
 
 
 
 

你可能感兴趣的:(职场,vc++,休闲)