EGPageCtrl.cpp
Upload User: kairuinn
Upload Date: 2009-02-07
Package Size: 2922k
Code Size: 3k
Category:

Graph program

Development Platform:

Visual C++

  1. #include "StdAfx.h"
  2. #include "EGPageCtrl.h"
  3. CEGPageCtrl::CEGPageCtrl(void)
  4. {
  5. m_pActivePage = NULL;
  6. }
  7. CEGPageCtrl::~CEGPageCtrl(void)
  8. {
  9. }
  10. BEGIN_MESSAGE_MAP( CEGPageCtrl, CEGTabCtrl )
  11. ON_NOTIFY_REFLECT( TCN_SELCHANGE, OnTabChanged )
  12. //ON_WM_GETDLGCODE( )
  13. END_MESSAGE_MAP()
  14. void CEGPageCtrl::OnTabChanged( NMHDR* /* pNotifyStruct */, LRESULT* /* result */ ) {
  15. // TODO: OnKillActive, OnNext and other..
  16. if ( m_pActivePage )
  17. m_pActivePage->ShowWindow( SW_HIDE );
  18. // TODO: OnSetActive, OnNext and other..
  19. int nSel = GetCurSel();
  20. if ( -1 == nSel ){
  21. m_pActivePage = NULL;
  22. return;
  23. } else {
  24. TC_ITEM tci;
  25. tci.mask = TCIF_PARAM;
  26. GetItem( nSel, &tci );
  27. m_pActivePage = (CPropertyPage*) tci.lParam;
  28. if ( m_pActivePage ) {
  29. CRect rcPage = GetPageRect(); 
  30. m_pActivePage->MoveWindow( &rcPage );
  31. m_pActivePage->ShowWindow( SW_SHOW );
  32. }
  33. }
  34. }
  35. CRect CEGPageCtrl::GetPageRect(){
  36. CRect rcClient, rcPage;
  37. GetClientRect( &rcClient );
  38. rcPage = rcClient;
  39. AdjustRect( FALSE, rcPage );
  40. rcPage.top += 3;
  41. rcPage.bottom = rcClient.bottom - 1;
  42. rcPage.left = rcClient.left + 1;
  43. rcPage.right = rcClient.right - 1;
  44. CRect rcWindow;
  45. GetWindowRect( &rcWindow );
  46. POINT pt = rcWindow.TopLeft();
  47. ::ScreenToClient( GetParent()->m_hWnd, &pt );
  48. rcPage.OffsetRect( pt.x, pt.y );
  49. return rcPage;
  50. }
  51. void CEGPageCtrl::AddPage( CPropertyPage* pPage, UINT nResourceID, TCHAR* lpszTitle ){
  52. //