包含tab控件时,,如何让子控件跟随对话框大小变化(上)

来源:互联网 发布:mac手机地址怎么查 编辑:程序博客网 时间:2024/05/24 15:43

这篇文章的生成,是在另一篇的基础上生成的,同时也是这篇博客的说明,令我修改为自己需要的类型。

该博客地址:控件随着窗口大小变化

然后说明下我的实际应用,在项目中,添加了一个tabctrl,通过其切换功能实现页面的变换,该tabctrl当然是派生类啦,但其功能却挺简单的,就是将dlg添加到tabctrl中,

class CTabPage : public CTabCtrl{DECLARE_DYNAMIC(CTabPage)intm_nPageCount;//页数public:CTabPage();virtual ~CTabPage();voidAddPage(CWnd* pPageWnd, LPTSTR lpTitle);//添加选项卡voidShowCurPage(UINT nShowState);//显示当前页面CWnd*GetCurPage();public:afx_msg void OnTcnSelchanging(NMHDR *pNMHDR, LRESULT *pResult);afx_msg void OnTcnSelchange(NMHDR *pNMHDR, LRESULT *pResult);DECLARE_MESSAGE_MAP()};
当然,这个类也不是我写的,还是拿别人的来用,但应该简单,且初步实现了我最开始要的功能,我就开始使用了,并且还可以在此基础上进行扩展,逐步修改为自己需要的类型。
CTabPage::CTabPage(){m_nPageCount= 0;}CTabPage::~CTabPage(){}void CTabPage::AddPage(CWnd *pPageWnd, LPTSTR lpTitle){TCITEMitemPage;itemPage.mask= TCIF_TEXT|TCIF_PARAM;itemPage.lParam= LPARAM(pPageWnd);itemPage.pszText= lpTitle;InsertItem(m_nPageCount, &itemPage);m_nPageCount==0?pPageWnd->ShowWindow(SW_SHOW):pPageWnd->ShowWindow(SW_HIDE);m_nPageCount++;}void CTabPage::ShowCurPage(UINT nShowState){intnCurItem;TCITEMitemCur;nCurItem= GetCurSel();itemCur.mask= TCIF_PARAM;GetItem(nCurItem, &itemCur);((CWnd*)itemCur.lParam)->ShowWindow(nShowState);}CWnd*CTabPage::GetCurPage(){intnCurItem;TCITEMitemCur;nCurItem= GetCurSel();itemCur.mask= TCIF_PARAM;GetItem(nCurItem, &itemCur);return((CWnd*)itemCur.lParam);}BEGIN_MESSAGE_MAP(CTabPage, CTabCtrl)ON_NOTIFY_REFLECT(TCN_SELCHANGING, &CTabPage::OnTcnSelchanging)ON_NOTIFY_REFLECT(TCN_SELCHANGE, &CTabPage::OnTcnSelchange)END_MESSAGE_MAP()// CTabPage 消息处理程序void CTabPage::OnTcnSelchanging(NMHDR *pNMHDR, LRESULT *pResult){ShowCurPage(SW_HIDE);*pResult= 0;}void CTabPage::OnTcnSelchange(NMHDR *pNMHDR, LRESULT *pResult){ShowCurPage(SW_SHOW);*pResult= 0;}

原创粉丝点击