在hdc上绘制文字:CreateFont

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
HDC hdc;
HFONT hf;
TEXTMETRIC tm;
double len;
int left;

hdc = GetDC(hWnd);
hf = CreateFont(0, 0, 0, 0, 0, 0, 0, 0, 0, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, "楷体"); // (HFONT) GetStockObject(0)
SelectObject(hdc, hf); // 绑定画笔
SetTextColor(hdc, 0x0000FF/*BGR*/); // 绑定颜色
GetTextMetrics(hdc, &tm); // 绑定大小
len = strlen(str) * tm.tmAveCharWidth; // 要画的文字总长度
left = R - len / 2; // 居中对齐
TextOut(hdc, left, 0, str, strlen(str));
DeleteObject(hf);
cheight += tm.tmHeight; // 下一行的高度

设置文字背景透明

1
SetBkMode(mdc, TRANSPARENT);

还有两句额外的设置颜色的

1
2
SetTextColor(mdc, RGB(255, 0, 0));
SetBkColor(mdc, RGB(0, 0, 0));