PaneNew.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:4k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // PaneNew.cpp : implementation file
  2. //
  3. // This file is a part of the XTREME TOOLKIT PRO MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. #include "stdafx.h"
  21. #include "GUI_OneNote.h"
  22. #include "PaneNew.h"
  23. #ifdef _DEBUG
  24. #define new DEBUG_NEW
  25. #undef THIS_FILE
  26. static char THIS_FILE[] = __FILE__;
  27. #endif
  28. /////////////////////////////////////////////////////////////////////////////
  29. // CPaneNew
  30. CPaneNew::CPaneNew()
  31. {
  32. }
  33. CPaneNew::~CPaneNew()
  34. {
  35. }
  36. BEGIN_MESSAGE_MAP(CPaneNew, CWnd)
  37. //{{AFX_MSG_MAP(CPaneNew)
  38. ON_WM_ERASEBKGND()
  39. ON_WM_PAINT()
  40. ON_WM_CREATE()
  41. ON_WM_SYSCOLORCHANGE()
  42. ON_WM_SIZE()
  43. //}}AFX_MSG_MAP
  44. END_MESSAGE_MAP()
  45. /////////////////////////////////////////////////////////////////////////////
  46. // CPaneNew message handlers
  47. BOOL CPaneNew::OnEraseBkgnd(CDC* /*pDC*/)
  48. {
  49. return TRUE;
  50. }
  51. static struct
  52. {
  53. UINT nID;
  54. LPCTSTR lpUrl;
  55. LPCTSTR lpDesc;
  56. }
  57. tasks[] =
  58. {
  59. ID_FILE_NEW, _T("Blank Page"), _T("Add a new page to the current notebook. A new page is represented by a new tab at the end of the vertical series of tabs."),
  60. ID_INSERT_SUBPAGE, _T("Subpage"), _T("Add a new page immediately following the current page and that shares the same title as the current page. A subpage is represented by a small tab to indicate that it is grouped with another page."),
  61. ID_INSERT_NEWSECTION, _T("Section"), _T("Create a section file in the current folder on your computer. Sections are represented by tabs across the top of the pages."),
  62. ID_WINDOW_NEW, _T("Quick note"), _T("Open a small OneNote window where you can make notes that are automatically saved in the Quick notes section.")
  63. };
  64. void CPaneNew::OnPaint()
  65. {
  66. CPaintDC dcPaint(this); // device context for painting
  67. CXTPClientRect rc(this);
  68. CXTPBufferDC dc(dcPaint, rc);
  69. dc.FillSolidRect(rc, m_clrOffice3DFace);
  70. CXTPFontDC font(&dc, XTPPaintManager()->GetRegularFont());
  71. int nTextHeight = dc.GetTextExtent(_T(" ")).cy;
  72. int nTop = 20;
  73. for (int i = 0; i < _countof(tasks); i++)
  74. {
  75. XTPImageManager()->GetImage(tasks[i].nID)->Draw(&dc, CPoint(17, nTop - 2));
  76. dc.SetTextColor(RGB(0, 0, 255));
  77. CRect rcUrl(37, nTop, rc.Width() - 10, nTop + nTextHeight);
  78. dc.DrawText(tasks[i].lpUrl, rcUrl, DT_SINGLELINE);
  79. nTop = nTop + nTextHeight + 3;
  80. dc.SetTextColor(GetSysColor(COLOR_BTNTEXT));
  81. CRect rcDesc(37, nTop, rc.Width() - 10, nTop);
  82. dc.DrawText(tasks[i].lpDesc, rcDesc, DT_WORDBREAK|DT_CALCRECT);
  83. dc.DrawText(tasks[i].lpDesc, rcDesc, DT_WORDBREAK);
  84. nTop = rcDesc.bottom + 13;
  85. }
  86. }
  87. void CPaneNew::RefreshColors()
  88. {
  89. XTPCurrentSystemTheme systemTheme = XTPColorManager()->GetCurrentSystemTheme();
  90. switch (systemTheme)
  91. {
  92. case xtpSystemThemeBlue:
  93. m_clrOffice3DFace = RGB(221, 236, 254);
  94. break;
  95. case xtpSystemThemeOlive:
  96. m_clrOffice3DFace = RGB(243, 242, 231);
  97. break;
  98. case xtpSystemThemeSilver:
  99. m_clrOffice3DFace = RGB(238, 238, 244);
  100. break;
  101. default:
  102. m_clrOffice3DFace = XTPColorManager()->LightColor(GetSysColor(COLOR_3DFACE), GetSysColor(COLOR_WINDOW), 50);
  103. }
  104. }
  105. int CPaneNew::OnCreate(LPCREATESTRUCT lpCreateStruct)
  106. {
  107. if (CWnd::OnCreate(lpCreateStruct) == -1)
  108. return -1;
  109. RefreshColors();
  110. return 0;
  111. }
  112. void CPaneNew::OnSysColorChange()
  113. {
  114. CWnd::OnSysColorChange();
  115. RefreshColors();
  116. }
  117. void CPaneNew::OnSize(UINT nType, int cx, int cy)
  118. {
  119. CWnd::OnSize(nType, cx, cy);
  120. Invalidate(FALSE);
  121. }