WTL Controls
Back to the WTL Controls Home Page.
ColorBlob.h
Go to the documentation of this file.
1 #pragma once
2 #include "stdafx.h"
3 
4 //--------------------------------------------------------------------------------------
5 //--------------------------------------------------------------------------------------
6 //
7 //
8 // WTL Control Library
9 // by
10 // Bright Ideas Software®
11 // Copyright © 2018 by Bright Ideas Software.
12 //
13 //
14 //
15 //--------------------------------------------------------------------------------------
16 //--------------------------------------------------------------------------------------
17 
18 namespace BIS_WTL_CONTROLS
19 {
20 
21  //----------------------------------------------------------------------------------------------
49  class CColorBlob : public CWindowImpl<CColorBlob, CStatic>
50  {
51  public:
52 
54  DECLARE_WND_SUPERCLASS(_T("CColorBlob"), CStatic::GetWndClassName())
56 
57  CColorBlob() noexcept;
58  virtual ~CColorBlob();
59 
60 
61  void SubclassStatic(HWND hWnd);
62  void UnSubclassStatic();
63 
64  void SetBackColor(COLORREF value);
65  COLORREF GetBackColor() const;
66 
67  void SetEdgeStyle(CEdgeStyle style);
68  CEdgeStyle GetEdgeStyle() const;
69 
70  void UpdateContent();
71 
72 
73  private:
74 
75  void UpdateBackBrush();
76 
77  void PrepareGDIStuff();
78  void DestroyGDIStuff();
79 
80  void DrawEdge(CRect r);
81 
82  bool m_bDirtyColor;
83  bool m_bUpdateContent;
84 
85  COLORREF m_clrBackColor;
86  CEdgeStyle m_EdgeStyle;
87 
88  HBRUSH m_hbrBackBrush;
89  HBITMAP m_hOldMap;
90  CImage m_hCanvas;
91  HDC m_hMemDC;
92 
93 
94 
95  BOOL OnEraseBkgnd(CDCHandle dc);
96  LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
97 
98  BEGIN_MSG_MAP_EX(CColorBlob)
99  MESSAGE_HANDLER(WM_PAINT, OnPaint)
100  MSG_WM_ERASEBKGND(OnEraseBkgnd)
101  END_MSG_MAP()
102 
103 
104  };
105  //----------------------------------------------------------------------------------------------
106 };
107 
void SetEdgeStyle(CEdgeStyle style)
Specify a new edge style. A call to UpdateContent may be required to make the new color visible...
Definition: ColorBlob.cpp:135
A CStatic descendant providing customizable background color and edge style, but no text...
Definition: ColorBlob.h:49
CEdgeStyle
Style of edge defining control boundaries.
Definition: WTL_Controls.h:37
void SubclassStatic(HWND hWnd)
Subclass a control window and create the colored background brush.
Definition: ColorBlob.cpp:57
void UpdateContent()
Wraps calls to Invalidate and UpdateWindow, updating the back buffer and blitting the new content to ...
Definition: ColorBlob.cpp:150
void UnSubclassStatic()
Un-subclass the window and release GDI resources.
Definition: ColorBlob.cpp:70
COLORREF GetBackColor() const
Default: COLOR_RED.
Definition: ColorBlob.cpp:93
void SetBackColor(COLORREF value)
Specify a new background color. A call to UpdateContent may be required to make the new color visible...
Definition: ColorBlob.cpp:107
CEdgeStyle GetEdgeStyle() const
Default: CEdgeStyle::esLine.
Definition: ColorBlob.cpp:121