annotate foosdk/sdk/libPPUI/GDIUtils.h @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 #pragma once
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2 #include "win32_op.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4 HBITMAP CreateDIB24(CSize size);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 HBITMAP CreateDIB16(CSize size);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 HBITMAP CreateDIB8(CSize size, const COLORREF palette[256]);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 void CreateScaledFont(CFont& out, CFontHandle in, double scale);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8 void CreateScaledFontEx(CFont& out, CFontHandle in, double scale, int weight);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 void CreatePreferencesHeaderFont(CFont& out, CWindow source);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 void CreatePreferencesHeaderFont2(CFont& out, CWindow source);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12 template<typename TCtrl>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13 class CAltFontCtrl : public TCtrl {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 void Initialize(CWindow wnd, double scale, int weight) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 CreateScaledFontEx(m_font, wnd.GetFont(), scale, weight);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 _initWnd(wnd);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 void MakeHeader(CWindow wnd) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20 CreatePreferencesHeaderFont(m_font, wnd);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21 _initWnd(wnd);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 void MakeHeader2(CWindow wnd) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24 CreatePreferencesHeaderFont2(m_font, wnd);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 _initWnd(wnd);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 private:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28 void _initWnd(CWindow wnd) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 this->SubclassWindow(wnd); this->SetFont(m_font);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31 CFont m_font;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
33
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
34 class CFontScaled : public CFont {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
35 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
36 CFontScaled(HFONT _in, double scale) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
37 CreateScaledFont(*this, _in, scale);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
38 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
39 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
40
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
41 class DCClipRgnScope {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
42 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
43 DCClipRgnScope(HDC dc) : m_dc(dc) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
44 m_dc.GetClipRgn(m_rgn);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
45 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
46 ~DCClipRgnScope() {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
47 m_dc.SelectClipRgn(m_rgn);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
48 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
49
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
50 HRGN OldVal() const noexcept {return m_rgn;}
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
51
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
52 PFC_CLASS_NOT_COPYABLE_EX(DCClipRgnScope)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
53 private:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
54 CDCHandle m_dc;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
55 CRgn m_rgn;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
56 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
57
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
58
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
59 HBRUSH MakeTempBrush(HDC dc, COLORREF color) noexcept;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
60
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
61 class CDCBrush : public CBrushHandle {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
62 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
63 CDCBrush(HDC dc, COLORREF color) noexcept {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
64 m_dc = dc;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
65 m_oldCol = m_dc.SetDCBrushColor(color);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
66 m_hBrush = (HBRUSH) GetStockObject(DC_BRUSH);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
67 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
68 ~CDCBrush() noexcept {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
69 m_dc.SetDCBrushColor(m_oldCol);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
70 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
71 PFC_CLASS_NOT_COPYABLE_EX(CDCBrush)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
72 private:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
73 CDCHandle m_dc;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
74 COLORREF m_oldCol;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
75 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
76
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
77 class CDCPen : public CPenHandle {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
78 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
79 CDCPen(HDC dc, COLORREF color) noexcept {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
80 m_dc = dc;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
81 m_oldCol = m_dc.SetDCPenColor(color);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
82 m_hPen = (HPEN) GetStockObject(DC_PEN);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
83 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
84 ~CDCPen() noexcept {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
85 m_dc.SetDCPenColor(m_oldCol);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
86 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
87 private:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
88 CDCHandle m_dc;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
89 COLORREF m_oldCol;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
90 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
91
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
92
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
93 class CBackBuffer : public CDC {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
94 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
95 CBackBuffer() {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
96 CreateCompatibleDC(NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
97 ATLASSERT(m_hDC != NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
98 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
99 ~CBackBuffer() {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
100 Dispose();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
101 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
102 void Attach(HBITMAP bmp, CSize size) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
103 Dispose();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
104 m_bitmap.Attach(bmp); m_curSize = size;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
105 m_bitmapOld = SelectBitmap(m_bitmap);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
106 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
107 void Attach(HBITMAP bmp) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
108 CSize size;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
109 bool state = CBitmapHandle(bmp).GetSize(size);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
110 ATLASSERT(state); (void)state;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
111 Attach(bmp, size);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
112 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
113 BOOL Allocate(CSize size, HDC dcCompatible = NULL) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
114 if (m_hDC == NULL) return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
115 if (m_curSize == size) return TRUE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
116 Dispose();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
117 HBITMAP temp;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
118 if (dcCompatible == NULL) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
119 temp = CreateDIB24(size);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
120 } else {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
121 temp = CreateCompatibleBitmap(dcCompatible, size.cx, size.cy);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
122 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
123 if (temp == NULL) return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
124 Attach(temp);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
125 return TRUE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
126 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
127
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
128 void Dispose() {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
129 if (m_bitmap != NULL) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
130 SelectBitmap(m_bitmapOld); m_bitmapOld = NULL;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
131 m_bitmap.DeleteObject();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
132 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
133 m_curSize = CSize(0,0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
134 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
135 BOOL GetBitmapPtr(t_uint8 * & ptr, t_ssize & lineWidth) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
136 if (m_bitmap == NULL) return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
137 BITMAP bmp = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
138 if (!m_bitmap.GetBitmap(bmp)) return FALSE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
139 lineWidth = bmp.bmWidthBytes;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
140 ptr = reinterpret_cast<t_uint8*>(bmp.bmBits);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
141 return TRUE;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
142 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
143 CSize GetSize() const { return m_curSize; }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
144
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
145 PFC_CLASS_NOT_COPYABLE_EX(CBackBuffer)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
146 private:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
147 CSize m_curSize = CSize(0,0);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
148 CBitmap m_bitmap;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
149 HBITMAP m_bitmapOld = NULL;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
150 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
151
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
152 class CBackBufferScope : public CDCHandle {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
153 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
154 CBackBufferScope(HDC hDC, HDC hDCBB, const CRect & rcPaint) : CDCHandle(hDCBB), m_rcPaint(rcPaint), m_dcOrig(hDC)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
155 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
156 GetClipRgn(m_clipRgnOld);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
157 CRgn temp;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
158 if (m_dcOrig.GetClipRgn(temp) == 1) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
159 if (m_clipRgnOld != NULL) temp.CombineRgn(m_clipRgnOld,RGN_AND);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
160 SelectClipRgn(temp);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
161 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
162 IntersectClipRect(rcPaint);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
163 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
164
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
165 ~CBackBufferScope()
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
166 {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
167 m_dcOrig.BitBlt(m_rcPaint.left,m_rcPaint.top,m_rcPaint.Width(),m_rcPaint.Height(),m_hDC,m_rcPaint.left,m_rcPaint.top,SRCCOPY);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
168 SelectClipRgn(m_clipRgnOld);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
169 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
170 private:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
171 const CRect m_rcPaint;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
172 CDCHandle m_dcOrig;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
173 CRgn m_clipRgnOld;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
174 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
175
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
176 class SetTextColorScope {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
177 public:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
178 SetTextColorScope(HDC dc, COLORREF col) noexcept : m_dc(dc) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
179 m_oldCol = SetTextColor(dc, col);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
180 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
181 ~SetTextColorScope() noexcept {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
182 SetTextColor(m_dc, m_oldCol);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
183 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
184 PFC_CLASS_NOT_COPYABLE_EX(SetTextColorScope)
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
185 private:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
186 HDC m_dc;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
187 COLORREF m_oldCol;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
188 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
189
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
190 CSize GetBitmapSize(HBITMAP bmp);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
191 CSize GetIconSize(HICON icon);