ReactOS 0.4.15-dev-5865-g640e228
drawing.cpp File Reference
#include "precomp.h"
Include dependency graph for drawing.cpp:

Go to the source code of this file.

Functions

void Line (HDC hdc, LONG x1, LONG y1, LONG x2, LONG y2, COLORREF color, int thickness)
 
void Rect (HDC hdc, LONG x1, LONG y1, LONG x2, LONG y2, COLORREF fg, COLORREF bg, int thickness, int style)
 
void Ellp (HDC hdc, LONG x1, LONG y1, LONG x2, LONG y2, COLORREF fg, COLORREF bg, int thickness, int style)
 
void RRect (HDC hdc, LONG x1, LONG y1, LONG x2, LONG y2, COLORREF fg, COLORREF bg, int thickness, int style)
 
void Poly (HDC hdc, POINT *lpPoints, int nCount, COLORREF fg, COLORREF bg, int thickness, int style, BOOL closed, BOOL inverted)
 
void Bezier (HDC hdc, POINT p1, POINT p2, POINT p3, POINT p4, COLORREF color, int thickness)
 
void Fill (HDC hdc, LONG x, LONG y, COLORREF color)
 
void Erase (HDC hdc, LONG x1, LONG y1, LONG x2, LONG y2, COLORREF color, LONG radius)
 
void Replace (HDC hdc, LONG x1, LONG y1, LONG x2, LONG y2, COLORREF fg, COLORREF bg, LONG radius)
 
void Airbrush (HDC hdc, LONG x, LONG y, COLORREF color, LONG r)
 
void Brush (HDC hdc, LONG x1, LONG y1, LONG x2, LONG y2, COLORREF color, LONG style)
 
void RectSel (HDC hdc, LONG x1, LONG y1, LONG x2, LONG y2)
 
void Text (HDC hdc, LONG x1, LONG y1, LONG x2, LONG y2, COLORREF fg, COLORREF bg, LPCTSTR lpchText, HFONT font, LONG style)
 
BOOL ColorKeyedMaskBlt (HDC hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, HDC hdcSrc, int nXSrc, int nYSrc, HBITMAP hbmMask, int xMask, int yMask, DWORD dwRop, COLORREF keyColor)
 

Function Documentation

◆ Airbrush()

void Airbrush ( HDC  hdc,
LONG  x,
LONG  y,
COLORREF  color,
LONG  r 
)

Definition at line 151 of file drawing.cpp.

152{
153 LONG a, b;
154
155 for(b = -r; b <= r; b++)
156 for(a = -r; a <= r; a++)
157 if ((a * a + b * b <= r * r) && (rand() % 4 == 0))
158 SetPixel(hdc, x + a, y + b, color);
159}
FORCEINLINE VOID SetPixel(_In_ ULONG Left, _In_ ULONG Top, _In_ UCHAR Color)
Definition: arm.h:50
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
GLuint color
Definition: glext.h:6243
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
_Check_return_ int __cdecl rand(void)
Definition: rand.c:10
#define a
Definition: ke_i.h:78
#define b
Definition: ke_i.h:79
HDC hdc
Definition: main.c:9
long LONG
Definition: pedump.c:60

Referenced by AirBrushTool::draw(), and CToolSettingsWindow::drawAirBrush().

◆ Bezier()

void Bezier ( HDC  hdc,
POINT  p1,
POINT  p2,
POINT  p3,
POINT  p4,
COLORREF  color,
int  thickness 
)

Definition at line 95 of file drawing.cpp.

96{
97 HPEN oldPen;
98 POINT fourPoints[4];
99 fourPoints[0] = p1;
100 fourPoints[1] = p2;
101 fourPoints[2] = p3;
102 fourPoints[3] = p4;
103 oldPen = (HPEN) SelectObject(hdc, CreatePen(PS_SOLID, thickness, color));
104 PolyBezier(hdc, fourPoints, 4);
105 DeleteObject(SelectObject(hdc, oldPen));
106}
pKey DeleteObject()
BOOL WINAPI PolyBezier(_In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ DWORD cpt)
Definition: painting.c:263
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1539
HPEN WINAPI CreatePen(_In_ int, _In_ int, _In_ COLORREF)
#define PS_SOLID
Definition: wingdi.h:586

Referenced by BezierTool::draw(), and GDI_Bezier().

◆ Brush()

void Brush ( HDC  hdc,
LONG  x1,
LONG  y1,
LONG  x2,
LONG  y2,
COLORREF  color,
LONG  style 
)

Definition at line 162 of file drawing.cpp.

163{
164 HPEN oldPen = (HPEN) SelectObject(hdc, CreatePen(PS_SOLID, 1, color));
165 HBRUSH oldBrush = (HBRUSH) SelectObject(hdc, CreateSolidBrush(color));
166 LONG a, b;
167 b = max(1, max(abs(x2 - x1), abs(y2 - y1)));
168 switch (style)
169 {
170 case 0:
171 for(a = 0; a <= b; a++)
172 Ellipse(hdc, (x1 * (b - a) + x2 * a) / b - 3, (y1 * (b - a) + y2 * a) / b - 3,
173 (x1 * (b - a) + x2 * a) / b + 4, (y1 * (b - a) + y2 * a) / b + 4);
174 break;
175 case 1:
176 for(a = 0; a <= b; a++)
177 Ellipse(hdc,
178 (x1 * (b - a) + x2 * a) / b - 2,
179 (y1 * (b - a) + y2 * a) / b - 2,
180 (x1 * (b - a) + x2 * a) / b + 2,
181 (y1 * (b - a) + y2 * a) / b + 2);
182 break;
183 case 2:
184 MoveToEx(hdc, x1, y1, NULL);
185 LineTo(hdc, x2, y2);
186 SetPixel(hdc, x2, y2, color);
187 break;
188 case 3:
189 for(a = 0; a <= b; a++)
191 (x1 * (b - a) + x2 * a) / b - 4,
192 (y1 * (b - a) + y2 * a) / b - 4,
193 (x1 * (b - a) + x2 * a) / b + 4,
194 (y1 * (b - a) + y2 * a) / b + 4);
195 break;
196 case 4:
197 for(a = 0; a <= b; a++)
198 Rectangle(hdc, (x1 * (b - a) + x2 * a) / b - 2, (y1 * (b - a) + y2 * a) / b - 2,
199 (x1 * (b - a) + x2 * a) / b + 3, (y1 * (b - a) + y2 * a) / b + 3);
200 break;
201 case 5:
202 for(a = 0; a <= b; a++)
203 Rectangle(hdc, (x1 * (b - a) + x2 * a) / b - 1, (y1 * (b - a) + y2 * a) / b - 1,
204 (x1 * (b - a) + x2 * a) / b + 1, (y1 * (b - a) + y2 * a) / b + 1);
205 break;
206 case 6:
207 case 7:
208 case 8:
209 case 9:
210 case 10:
211 case 11:
212 {
213 POINT offsTop[] = {{3, -3}, {2, -2}, {0, 0},
214 {-4, -4}, {-2, -2}, {-1, 0}};
215 POINT offsBtm[] = {{-3, 3}, {-2, 2}, {-1, 1},
216 {3, 3}, {2, 2}, {0, 1}};
217 LONG idx = style - 6;
218 POINT pts[4];
219 pts[0].x = x1 + offsTop[idx].x;
220 pts[0].y = y1 + offsTop[idx].y;
221 pts[1].x = x1 + offsBtm[idx].x;
222 pts[1].y = y1 + offsBtm[idx].y;
223 pts[2].x = x2 + offsBtm[idx].x;
224 pts[2].y = y2 + offsBtm[idx].y;
225 pts[3].x = x2 + offsTop[idx].x;
226 pts[3].y = y2 + offsTop[idx].y;
227 Polygon(hdc, pts, 4);
228 break;
229 }
230 }
231 DeleteObject(SelectObject(hdc, oldBrush));
232 DeleteObject(SelectObject(hdc, oldPen));
233}
Arabic default style
Definition: afstyles.h:94
#define NULL
Definition: types.h:112
unsigned int idx
Definition: utils.c:41
#define abs(i)
Definition: fconv.c:206
BOOL Polygon(CONST PPOINT UnsafePoints, int Count, int polyFillMode)
Definition: polytest.cpp:730
long y
Definition: polytest.cpp:48
long x
Definition: polytest.cpp:48
#define max(a, b)
Definition: svc.c:63
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
Definition: winddi.h:3710
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
Definition: winddi.h:3709
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
Definition: winddi.h:3708
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
Definition: winddi.h:3711
BOOL WINAPI Ellipse(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
BOOL WINAPI MoveToEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
BOOL WINAPI Rectangle(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF)
BOOL WINAPI LineTo(_In_ HDC, _In_ int, _In_ int)

◆ ColorKeyedMaskBlt()

BOOL ColorKeyedMaskBlt ( HDC  hdcDest,
int  nXDest,
int  nYDest,
int  nWidth,
int  nHeight,
HDC  hdcSrc,
int  nXSrc,
int  nYSrc,
HBITMAP  hbmMask,
int  xMask,
int  yMask,
DWORD  dwRop,
COLORREF  keyColor 
)

Definition at line 292 of file drawing.cpp.

295{
296 HDC hTempDC;
297 HDC hTempDC2;
298 HBITMAP hTempBm;
299 HBRUSH hTempBrush;
300 HBITMAP hTempMask;
301
302 hTempDC = CreateCompatibleDC(hdcSrc);
303 hTempDC2 = CreateCompatibleDC(hdcSrc);
304 hTempBm = CreateCompatibleBitmap(hTempDC, nWidth, nHeight);
305 SelectObject(hTempDC, hTempBm);
306 hTempBrush = CreateSolidBrush(keyColor);
307 SelectObject(hTempDC, hTempBrush);
308 BitBlt(hTempDC, 0, 0, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, SRCCOPY);
309 PatBlt(hTempDC, 0, 0, nWidth, nHeight, PATINVERT);
310 hTempMask = CreateBitmap(nWidth, nHeight, 1, 1, NULL);
311 SelectObject(hTempDC2, hTempMask);
312 BitBlt(hTempDC2, 0, 0, nWidth, nHeight, hTempDC, 0, 0, SRCCOPY);
313 SelectObject(hTempDC, hbmMask);
314 BitBlt(hTempDC2, 0, 0, nWidth, nHeight, hTempDC, xMask, yMask, SRCAND);
315 MaskBlt(hdcDest, nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, hTempMask, xMask, yMask, dwRop);
316 DeleteDC(hTempDC);
317 DeleteDC(hTempDC2);
318 DeleteObject(hTempBm);
319 DeleteObject(hTempBrush);
320 DeleteObject(hTempMask);
321 return TRUE;
322}
#define TRUE
Definition: types.h:120
static VOID NTAPI BitBlt(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Width, _In_ ULONG Height, _In_reads_bytes_(Delta *Height) PUCHAR Buffer, _In_ ULONG BitsPerPixel, _In_ ULONG Delta)
Definition: common.c:49
static HBITMAP
Definition: button.c:44
static HDC
Definition: imagelist.c:92
HBITMAP WINAPI CreateBitmap(_In_ INT cx, _In_ INT cy, _In_ UINT cPlanes, _In_ UINT cBitsPerPel, _In_opt_ const VOID *pvBits)
#define PATINVERT
Definition: wingdi.h:328
BOOL WINAPI MaskBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ HDC, _In_ int, _In_ int, _In_ HBITMAP, _In_ int, _In_ int, _In_ DWORD)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
#define SRCCOPY
Definition: wingdi.h:333
BOOL WINAPI PatBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD)
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
BOOL WINAPI DeleteDC(_In_ HDC)
#define SRCAND
Definition: wingdi.h:330
static HDC hdcSrc
Definition: xlate.c:32

Referenced by SelectionModel::DrawSelection().

◆ Ellp()

void Ellp ( HDC  hdc,
LONG  x1,
LONG  y1,
LONG  x2,
LONG  y2,
COLORREF  fg,
COLORREF  bg,
int  thickness,
int  style 
)

Definition at line 40 of file drawing.cpp.

41{
42 HBRUSH oldBrush;
43 LOGBRUSH logbrush;
44 HPEN oldPen = (HPEN) SelectObject(hdc, CreatePen(PS_SOLID, thickness, fg));
45 logbrush.lbStyle = (style == 0) ? BS_HOLLOW : BS_SOLID;
46 logbrush.lbColor = (style == 2) ? fg : bg;
47 logbrush.lbHatch = 0;
48 oldBrush = (HBRUSH) SelectObject(hdc, CreateBrushIndirect(&logbrush));
49 Ellipse(hdc, x1, y1, x2, y2);
50 DeleteObject(SelectObject(hdc, oldBrush));
52}
UINT lbStyle
Definition: wingdi.h:1747
ULONG_PTR lbHatch
Definition: wingdi.h:1749
COLORREF lbColor
Definition: wingdi.h:1748
HBRUSH WINAPI CreateBrushIndirect(_In_ const LOGBRUSH *plb)
#define BS_HOLLOW
Definition: wingdi.h:1088
#define BS_SOLID
Definition: wingdi.h:1086

Referenced by EllipseTool::draw().

◆ Erase()

void Erase ( HDC  hdc,
LONG  x1,
LONG  y1,
LONG  x2,
LONG  y2,
COLORREF  color,
LONG  radius 
)

Definition at line 117 of file drawing.cpp.

118{
119 LONG a, b;
120 HPEN oldPen;
121 HBRUSH oldBrush = (HBRUSH) SelectObject(hdc, CreateSolidBrush(color));
122
123 b = max(1, max(abs(x2 - x1), abs(y2 - y1)));
124 oldPen = (HPEN) SelectObject(hdc, CreatePen(PS_SOLID, 1, color));
125 for(a = 0; a <= b; a++)
127 (x1 * (b - a) + x2 * a) / b - radius,
128 (y1 * (b - a) + y2 * a) / b - radius,
129 (x1 * (b - a) + x2 * a) / b + radius,
130 (y1 * (b - a) + y2 * a) / b + radius);
131 DeleteObject(SelectObject(hdc, oldBrush));
132 DeleteObject(SelectObject(hdc, oldPen));
133}

Referenced by RubberTool::draw(), GetUpdateRect(), and IntBeginPaint().

◆ Fill()

void Fill ( HDC  hdc,
LONG  x,
LONG  y,
COLORREF  color 
)

Definition at line 109 of file drawing.cpp.

110{
111 HBRUSH oldBrush = (HBRUSH) SelectObject(hdc, CreateSolidBrush(color));
113 DeleteObject(SelectObject(hdc, oldBrush));
114}
DWORD GetPixel(LPDIRECTDRAWSURFACE7 Surface, UINT x, UINT y)
Definition: blt.cpp:2
#define FLOODFILLSURFACE
Definition: wingdi.h:645
BOOL WINAPI ExtFloodFill(_In_ HDC, _In_ int, _In_ int, _In_ COLORREF, _In_ UINT)

Referenced by CheckStringBuffer(), CheckStringBufferA(), CheckStringBufferW(), DIB_24BPP_HLine(), FillTool::OnButtonDown(), RtlFillMemory(), RtlFillMemoryUlong(), TuiDrawBox(), and UiDrawBox().

◆ Line()

void Line ( HDC  hdc,
LONG  x1,
LONG  y1,
LONG  x2,
LONG  y2,
COLORREF  color,
int  thickness 
)

Definition at line 16 of file drawing.cpp.

17{
18 HPEN oldPen = (HPEN) SelectObject(hdc, CreatePen(PS_SOLID, thickness, color));
19 MoveToEx(hdc, x1, y1, NULL);
20 LineTo(hdc, x2, y2);
22}

◆ Poly()

void Poly ( HDC  hdc,
POINT lpPoints,
int  nCount,
COLORREF  fg,
COLORREF  bg,
int  thickness,
int  style,
BOOL  closed,
BOOL  inverted 
)

Definition at line 70 of file drawing.cpp.

71{
72 LOGBRUSH logbrush;
73 HBRUSH oldBrush;
74 HPEN oldPen = (HPEN) SelectObject(hdc, CreatePen(PS_SOLID, thickness, fg));
75 UINT oldRop = GetROP2(hdc);
76
77 if (inverted)
79
80 logbrush.lbStyle = (style == 0) ? BS_HOLLOW : BS_SOLID;
81 logbrush.lbColor = (style == 2) ? fg : bg;
82 logbrush.lbHatch = 0;
83 oldBrush = (HBRUSH) SelectObject(hdc, CreateBrushIndirect(&logbrush));
84 if (closed)
85 Polygon(hdc, lpPoints, nCount);
86 else
87 Polyline(hdc, lpPoints, nCount);
88 DeleteObject(SelectObject(hdc, oldBrush));
90
91 SetROP2(hdc, oldRop);
92}
unsigned int UINT
Definition: ndis.h:50
BOOL WINAPI Polyline(_In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ int cpt)
#define R2_NOTXORPEN
Definition: wingdi.h:351
int WINAPI GetROP2(_In_ HDC)
Definition: dc.c:1086
int WINAPI SetROP2(_In_ HDC, _In_ int)
Definition: dc.c:1107

Referenced by SelectionModel::CalculateBoundingBoxAndContents(), ShapeTool::draw(), SelectionModel::DrawBackgroundPoly(), and SelectionModel::DrawFramePoly().

◆ Rect()

void Rect ( HDC  hdc,
LONG  x1,
LONG  y1,
LONG  x2,
LONG  y2,
COLORREF  fg,
COLORREF  bg,
int  thickness,
int  style 
)

Definition at line 25 of file drawing.cpp.

26{
27 HBRUSH oldBrush;
28 LOGBRUSH logbrush;
29 HPEN oldPen = (HPEN) SelectObject(hdc, CreatePen(PS_SOLID, thickness, fg));
30 logbrush.lbStyle = (style == 0) ? BS_HOLLOW : BS_SOLID;
31 logbrush.lbColor = (style == 2) ? fg : bg;
32 logbrush.lbHatch = 0;
33 oldBrush = (HBRUSH) SelectObject(hdc, CreateBrushIndirect(&logbrush));
34 Rectangle(hdc, x1, y1, x2, y2);
35 DeleteObject(SelectObject(hdc, oldBrush));
37}

◆ RectSel()

void RectSel ( HDC  hdc,
LONG  x1,
LONG  y1,
LONG  x2,
LONG  y2 
)

Definition at line 236 of file drawing.cpp.

237{
238 HBRUSH oldBrush;
239 LOGBRUSH logbrush;
240 HPEN oldPen = (HPEN) SelectObject(hdc, CreatePen(PS_DOT, 1, GetSysColor(COLOR_HIGHLIGHT)));
241 UINT oldRop = GetROP2(hdc);
242
244
245 logbrush.lbStyle = BS_HOLLOW;
246 logbrush.lbColor = 0;
247 logbrush.lbHatch = 0;
248 oldBrush = (HBRUSH) SelectObject(hdc, CreateBrushIndirect(&logbrush));
249 Rectangle(hdc, x1, y1, x2, y2);
250 DeleteObject(SelectObject(hdc, oldBrush));
251 DeleteObject(SelectObject(hdc, oldPen));
252
253 SetROP2(hdc, oldRop);
254}
#define PS_DOT
Definition: wingdi.h:588
DWORD WINAPI GetSysColor(_In_ int)
#define COLOR_HIGHLIGHT
Definition: winuser.h:920

Referenced by RectSelTool::OnMouseMove(), and TextTool::UpdatePoint().

◆ Replace()

void Replace ( HDC  hdc,
LONG  x1,
LONG  y1,
LONG  x2,
LONG  y2,
COLORREF  fg,
COLORREF  bg,
LONG  radius 
)

Definition at line 136 of file drawing.cpp.

137{
138 LONG a, b, x, y;
139 b = max(1, max(abs(x2 - x1), abs(y2 - y1)));
140
141 for(a = 0; a <= b; a++)
142 for(y = (y1 * (b - a) + y2 * a) / b - radius + 1;
143 y < (y1 * (b - a) + y2 * a) / b + radius + 1; y++)
144 for(x = (x1 * (b - a) + x2 * a) / b - radius + 1;
145 x < (x1 * (b - a) + x2 * a) / b + radius + 1; x++)
146 if (GetPixel(hdc, x, y) == fg)
147 SetPixel(hdc, x, y, bg);
148}

Referenced by COMDLG32_FR_CheckPartial(), COMDLG32_FR_HandleWMCommand(), RubberTool::draw(), UDFHardLink(), UDFHardLinkFile__(), UDFRename(), and UDFRenameMoveFile__().

◆ RRect()

void RRect ( HDC  hdc,
LONG  x1,
LONG  y1,
LONG  x2,
LONG  y2,
COLORREF  fg,
COLORREF  bg,
int  thickness,
int  style 
)

Definition at line 55 of file drawing.cpp.

56{
57 LOGBRUSH logbrush;
58 HBRUSH oldBrush;
59 HPEN oldPen = (HPEN) SelectObject(hdc, CreatePen(PS_SOLID, thickness, fg));
60 logbrush.lbStyle = (style == 0) ? BS_HOLLOW : BS_SOLID;
61 logbrush.lbColor = (style == 2) ? fg : bg;
62 logbrush.lbHatch = 0;
63 oldBrush = (HBRUSH) SelectObject(hdc, CreateBrushIndirect(&logbrush));
64 RoundRect(hdc, x1, y1, x2, y2, 16, 16);
65 DeleteObject(SelectObject(hdc, oldBrush));
67}
BOOL WINAPI RoundRect(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int)

Referenced by RRectTool::draw().

◆ Text()

void Text ( HDC  hdc,
LONG  x1,
LONG  y1,
LONG  x2,
LONG  y2,
COLORREF  fg,
COLORREF  bg,
LPCTSTR  lpchText,
HFONT  font,
LONG  style 
)

Definition at line 257 of file drawing.cpp.

258{
259 INT iSaveDC = SaveDC(hdc); // We will modify the clipping region. Save now.
260
261 RECT rc;
262 SetRect(&rc, x1, y1, x2, y2);
263
264 if (style == 0) // Transparent
265 {
268 }
269 else // Opaque
270 {
272 SetBkColor(hdc, bg);
273
274 HBRUSH hbr = CreateSolidBrush(bg);
275 FillRect(hdc, &rc, hbr); // Fill the background
276 DeleteObject(hbr);
277 }
278
279 IntersectClipRect(hdc, rc.left, rc.top, rc.right, rc.bottom);
280
281 HGDIOBJ hFontOld = SelectObject(hdc, font);
282 SetTextColor(hdc, fg);
283 const UINT uFormat = DT_LEFT | DT_TOP | DT_EDITCONTROL | DT_NOPREFIX | DT_NOCLIP |
285 DrawText(hdc, lpchText, -1, &rc, uFormat);
286 SelectObject(hdc, hFontOld);
287
288 RestoreDC(hdc, iSaveDC); // Restore
289}
Definition: mk_font.cpp:20
LONG right
Definition: windef.h:308
LONG bottom
Definition: windef.h:309
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
int32_t INT
Definition: typedefs.h:58
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
Definition: dc.c:999
int WINAPI IntersectClipRect(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
#define TRANSPARENT
Definition: wingdi.h:950
BOOL WINAPI RestoreDC(_In_ HDC, _In_ int)
COLORREF WINAPI GetBkColor(_In_ HDC)
Definition: dc.c:978
#define OPAQUE
Definition: wingdi.h:949
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
int WINAPI SetBkMode(_In_ HDC, _In_ int)
Definition: dc.c:1056
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
Definition: text.c:918
int WINAPI SaveDC(_In_ HDC)
#define DT_NOPREFIX
Definition: winuser.h:537
#define DT_NOCLIP
Definition: winuser.h:536
#define DrawText
Definition: winuser.h:5761
#define DT_LEFT
Definition: winuser.h:534
#define DT_TOP
Definition: winuser.h:542
#define DT_WORDBREAK
Definition: winuser.h:544
#define DT_EXPANDTABS
Definition: winuser.h:532
#define DT_EDITCONTROL
Definition: winuser.h:528
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)