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

Graph program

Development Platform:

Visual C++

  1. // ThemeSheetDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "..//Solidgraph.h"
  5. #include "ThemeSheetDlg.h"
  6. #include ".themesheetdlg.h"
  7. // CThemeSheetDlg dialog
  8. IMPLEMENT_DYNAMIC(CThemeSheetDlg, CDialog)
  9. CThemeSheetDlg::CThemeSheetDlg(UINT themeID,CWnd* pParent /*=NULL*/)
  10. : CDialog(CThemeSheetDlg::IDD, pParent)
  11. , m_radio(FALSE)
  12. {
  13. m_themeID = themeID;
  14. switch(m_themeID) 
  15. {
  16. case CEGMenu::STYLE_ORIGINAL:
  17. m_radio = 0;
  18. break;
  19. case CEGMenu::STYLE_XP_2003:
  20. m_radio = 1;
  21. break;
  22. case CEGMenu::STYLE_XP:
  23. m_radio = 2;
  24. break;
  25. case CEGMenu::STYLE_ICY:
  26. m_radio = 3;
  27. break;
  28. default:
  29. ASSERT(0);
  30. }
  31. }
  32. CThemeSheetDlg::~CThemeSheetDlg()
  33. {
  34. }
  35. void CThemeSheetDlg::DoDataExchange(CDataExchange* pDX)
  36. {
  37. CDialog::DoDataExchange(pDX);
  38. DDX_Radio(pDX, IDC_THEME_RADIO1, m_radio);
  39. }
  40. BEGIN_MESSAGE_MAP(CThemeSheetDlg, CDialog)
  41. ON_BN_CLICKED(IDC_THEME_RADIO1, OnBnClickedThemeRadio1)
  42. ON_BN_CLICKED(IDC_THEME_RADIO2, OnBnClickedThemeRadio2)
  43. ON_BN_CLICKED(IDC_THEME_RADIO3, OnBnClickedThemeRadio3)
  44. ON_BN_CLICKED(IDC_THEME_RADIO4, OnBnClickedThemeRadio4)
  45. ON_WM_ERASEBKGND()
  46. ON_WM_PAINT()
  47. END_MESSAGE_MAP()
  48. // CThemeSheetDlg message handlers
  49. BOOL CThemeSheetDlg::OnInitDialog()
  50. {
  51. CDialog::OnInitDialog();
  52. APP_SWITCH_RESOURCE
  53. m_imgs[0].CreateFromHBITMAP(::LoadBitmap(AfxGetInstanceHandle(),
  54. MAKEINTRESOURCE(IDB_TH_CLAS)));
  55. m_imgs[1].CreateFromHBITMAP(::LoadBitmap(AfxGetInstanceHandle(),
  56. MAKEINTRESOURCE(IDB_TH_2003)));
  57. m_imgs[2].CreateFromHBITMAP(::LoadBitmap(AfxGetInstanceHandle(),
  58. MAKEINTRESOURCE(IDB_TH_XP)));
  59. m_imgs[3].CreateFromHBITMAP(::LoadBitmap(AfxGetInstanceHandle(),
  60. MAKEINTRESOURCE(IDB_TH_ICY)));
  61. return TRUE;  // return TRUE unless you set the focus to a control
  62. // EXCEPTION: OCX Property Pages should return FALSE
  63. }
  64. void CThemeSheetDlg::OnCancel()
  65. {
  66. }
  67. void CThemeSheetDlg::OnOK()
  68. {
  69. }
  70. void CThemeSheetDlg::OnBnClickedThemeRadio1()
  71. {
  72. m_themeID =  CEGMenu::STYLE_ORIGINAL;
  73. CRect rrr;
  74. GetDlgItem(IDC_THEME_PIC_FRAME)->GetWindowRect(rrr);
  75. ScreenToClient(rrr);
  76. InvalidateRect(rrr);
  77. }
  78. void CThemeSheetDlg::OnBnClickedThemeRadio2()
  79. {
  80. m_themeID =   CEGMenu::STYLE_XP_2003;
  81. CRect rrr;
  82. GetDlgItem(IDC_THEME_PIC_FRAME)->GetWindowRect(rrr);
  83. ScreenToClient(rrr);
  84. InvalidateRect(rrr);
  85. }
  86. void CThemeSheetDlg::OnBnClickedThemeRadio3()
  87. {
  88. m_themeID =   CEGMenu::STYLE_XP;
  89. CRect rrr;
  90. GetDlgItem(IDC_THEME_PIC_FRAME)->GetWindowRect(rrr);
  91. ScreenToClient(rrr);
  92. InvalidateRect(rrr);
  93. }
  94. void CThemeSheetDlg::OnBnClickedThemeRadio4()
  95. {
  96. m_themeID =   CEGMenu::STYLE_ICY;
  97. CRect rrr;
  98. GetDlgItem(IDC_THEME_PIC_FRAME)->GetWindowRect(rrr);
  99. ScreenToClient(rrr);
  100. InvalidateRect(rrr);
  101. }
  102. #include "..//MemDC.h"
  103. #define USE_MEM_DC // Comment this out, if you don't want to use CMemDC
  104. BOOL CThemeSheetDlg::OnEraseBkgnd(CDC* pDC)
  105. {/*
  106. #ifdef USE_MEM_DC
  107. CMemDC memDC(pDC);
  108. #else
  109. CDC* memDC = pDC;
  110. #endif
  111. CRect rrr;
  112. GetClientRect(rrr);
  113. themeData.DrawThemedRect(&memDC,&rrr,FALSE);
  114. */
  115. return CDialog::OnEraseBkgnd(pDC);
  116. }
  117. void CThemeSheetDlg::OnPaint()
  118. {
  119. CPaintDC dc(this); // device context for painting
  120. /*
  121. #ifdef USE_MEM_DC
  122. CMemDC memDC(&dc);
  123. #else
  124. CDC* memDC = &dc;
  125. #endif
  126. */
  127. CRect rrr;
  128. GetDlgItem(IDC_THEME_PIC_FRAME)->GetWindowRect(rrr);
  129. ScreenToClient(rrr);
  130. CSize sz(m_imgs[0].GetWidth(),m_imgs[0].GetHeight());
  131. char imN = 0;
  132. switch(m_themeID) 
  133. {
  134. case CEGMenu::STYLE_ORIGINAL:
  135. imN = 0;
  136. break;
  137. case CEGMenu::STYLE_XP_2003:
  138. imN = 1;
  139. break;
  140. case CEGMenu::STYLE_XP:
  141. imN = 2;
  142. break;
  143. case CEGMenu::STYLE_ICY:
  144. imN = 3;
  145. break;
  146. default:
  147. ASSERT(0);
  148. }
  149. m_imgs[imN].Draw(dc, FitFirstRectToSecond(sz,rrr));
  150. }