DittoWindow.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #pragma once
  2. #include "GdipButton.h"
  3. #include "GdiImageDrawer.h"
  4. #include "DPI.h"
  5. #define BUTTON_CLOSE 1
  6. #define BUTTON_CHEVRON 2
  7. #define BUTTON_MINIMIZE 3
  8. #define BUTTON_MAXIMIZE 4
  9. class CDittoWindow
  10. {
  11. public:
  12. CDittoWindow(void);
  13. ~CDittoWindow(void);
  14. void DoNcPaint(CWnd *pWnd);
  15. void DrawChevronBtn(CWindowDC &dc, CWnd *pWnd);
  16. void DrawCloseBtn(CWindowDC &dc, CWnd *pWnd);
  17. void DrawMaximizeBtn(CWindowDC &dc, CWnd *pWnd);
  18. void DrawMinimizeBtn(CWindowDC &dc, CWnd *pWnd);
  19. void DrawWindowIcon(CWindowDC &dc, CWnd *pWnd);
  20. void DoCreate(CWnd *pWnd);
  21. void DoNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp);
  22. UINT DoNcHitTest(CWnd *pWnd, CPoint point);
  23. long DoNcLButtonUp(CWnd *pWnd, UINT nHitTest, CPoint point);
  24. int DoNcLButtonDown(CWnd *pWnd, UINT nHitTest, CPoint point);
  25. void DoNcMouseMove(CWnd *pWnd, UINT nHitTest, CPoint point) ;
  26. bool DoPreTranslateMessage(MSG* pMsg);
  27. void SetCaptionOn(CWnd *pWnd, int nPos, bool bOnstartup, int captionSize, int captionFontSize);
  28. bool SetCaptionColors(COLORREF left, COLORREF right, COLORREF border);
  29. void SetCaptionTextColor(COLORREF color);
  30. void MinMaxWindow(CWnd *pWnd, long lOption);
  31. void SetTitleTextHeight(CWnd *pWnd);
  32. int IndexToPos(int index, bool horizontal);
  33. void OnDpiChanged(CWnd *pWnd, int dpi);
  34. bool m_bDrawClose;
  35. bool m_sendWMClose;
  36. bool m_bDrawChevron;
  37. bool m_bDrawMaximize;
  38. bool m_bDrawMinimize;
  39. CRect m_crCloseBT;
  40. CRect m_crChevronBT;
  41. CRect m_crMaximizeBT;
  42. CRect m_crMinimizeBT;
  43. CRect m_crWindowIconBT;
  44. CFont m_VertFont;
  45. CFont m_HorFont;
  46. bool m_bMinimized;
  47. bool m_bMouseDownOnChevron;
  48. bool m_bMouseOverChevron;
  49. bool m_bMouseDownOnClose;
  50. bool m_bMouseOverClose;
  51. bool m_bMouseDownOnMinimize;
  52. bool m_bMouseOverMinimize;
  53. bool m_bMouseDownOnMaximize;
  54. bool m_bMouseOverMaximize;
  55. COLORREF m_CaptionColorLeft;
  56. COLORREF m_CaptionColorRight;
  57. COLORREF m_CaptionTextColor;
  58. COLORREF m_border;
  59. CGdiImageDrawer m_closeButton;
  60. CGdiImageDrawer m_chevronRightButton;
  61. CGdiImageDrawer m_chevronLeftButton;
  62. CGdiImageDrawer m_maximizeButton;
  63. CGdiImageDrawer m_minimizeButton;
  64. //CGdiImageDrawer m_windowIcon;
  65. CString m_customWindowTitle;
  66. bool m_useCustomWindowTitle;
  67. int m_captionBorderWidth;
  68. int m_captionPosition;
  69. int m_borderSize;
  70. int m_titleTextHeight;
  71. bool m_buttonDownOnCaption;
  72. CRect m_crFullSizeWindow;
  73. COleDateTime m_TimeMinimized;
  74. COleDateTime m_TimeMaximized;
  75. CDPI m_dpi;
  76. };