1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| string FontName = "Arial";
unsigned char* Data = NULL;
BITMAPINFO BitmapInfo;
memset(&BitmapInfo, 0, sizeof(BITMAPINFO));
BitmapInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
BitmapInfo.bmiHeader.biWidth = 256;
BitmapInfo.bmiHeader.biHeight = 256;
BitmapInfo.bmiHeader.biBitCount = 24;
BitmapInfo.bmiHeader.biPlanes = 1;
HDC Hdc = CreateCompatibleDC(NULL);
HBITMAP BitmapHandle = CreateDIBSection(Hdc, &BitmapInfo, DIB_RGB_COLORS, reinterpret_cast<void**>(&Data), NULL, 0);
HFONT FontHandle = CreateFont(16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, OEM_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH, FontName.c_str());
SelectObject(Hdc, BitmapHandle);
SelectObject(Hdc, FontHandle);
SetBkColor(Hdc, RGB(0, 0, 0));
SetTextColor(Hdc, RGB(255, 255, 255));
char Character = 0;
for (int j = 0; j < 16; ++j)
{
for (int i = 0; i < 16; ++i, Character++)
{
RECT Rect = {i * 16, j * 16, (i + 1) * 16, (j + 1) * 16};
DrawText(Hdc, &Character, 1, &Rect, DT_LEFT);
}
}
// Création de la texture à partir des pixels pointés par Data
// ...
DeleteObject(FontHandle);
DeleteObject(BitmapHandle);
DeleteDC(Hdc); |
Partager