EGPageCtrl.cpp
上传用户:kairuinn
上传日期:2009-02-07
资源大小:2922k
文件大小:3k
- #include "StdAfx.h"
- #include "EGPageCtrl.h"
- CEGPageCtrl::CEGPageCtrl(void)
- {
- m_pActivePage = NULL;
- }
- CEGPageCtrl::~CEGPageCtrl(void)
- {
- }
- BEGIN_MESSAGE_MAP( CEGPageCtrl, CEGTabCtrl )
- ON_NOTIFY_REFLECT( TCN_SELCHANGE, OnTabChanged )
- //ON_WM_GETDLGCODE( )
- END_MESSAGE_MAP()
- void CEGPageCtrl::OnTabChanged( NMHDR* /* pNotifyStruct */, LRESULT* /* result */ ) {
- // TODO: OnKillActive, OnNext and other..
- if ( m_pActivePage )
- m_pActivePage->ShowWindow( SW_HIDE );
- // TODO: OnSetActive, OnNext and other..
- int nSel = GetCurSel();
- if ( -1 == nSel ){
- m_pActivePage = NULL;
- return;
- } else {
- TC_ITEM tci;
- tci.mask = TCIF_PARAM;
- GetItem( nSel, &tci );
- m_pActivePage = (CPropertyPage*) tci.lParam;
- if ( m_pActivePage ) {
- CRect rcPage = GetPageRect();
- m_pActivePage->MoveWindow( &rcPage );
- m_pActivePage->ShowWindow( SW_SHOW );
- }
- }
- }
- CRect CEGPageCtrl::GetPageRect(){
-
- CRect rcClient, rcPage;
- GetClientRect( &rcClient );
-
- rcPage = rcClient;
- AdjustRect( FALSE, rcPage );
-
- rcPage.top += 3;
- rcPage.bottom = rcClient.bottom - 1;
- rcPage.left = rcClient.left + 1;
- rcPage.right = rcClient.right - 1;
-
- CRect rcWindow;
- GetWindowRect( &rcWindow );
- POINT pt = rcWindow.TopLeft();
- ::ScreenToClient( GetParent()->m_hWnd, &pt );
- rcPage.OffsetRect( pt.x, pt.y );
- return rcPage;
- }
- void CEGPageCtrl::AddPage( CPropertyPage* pPage, UINT nResourceID, TCHAR* lpszTitle ){
- //