Итак, я играл с моим тестовым приложением и заметил, что использование оперативной памяти растет, когда я перемещаю свое окно к краям экрана.
Кроме того, при использовании оперативной памяти в 19 МБ шрифты исчезают, и приложение становится глючным.
Однако этого не происходит, когда окно не касается краев экрана.
Вот видео на YouTube со мной, показывающее, что я имею в виду.
Я думаю, что мой код просто не очень эффективен.
Код для рисования текста:
void drawText(LPCWSTR text, LPCWSTR fontName,int fontSize, int x, int y, HDC hdc) {
//Creat font from name and size
HFONT font = CreateFont(
fontSize,
0,
0,
0,
FW_NORMAL,
FALSE,
FALSE,
FALSE,
ANSI_CHARSET,
OUT_CHARACTER_PRECIS,
CLIP_CHARACTER_PRECIS,
CLEARTYPE_QUALITY,
DEFAULT_PITCH,
fontName);
//Change Current Font
HFONT oldFont = (HFONT) SelectObject(hdc, font);
//Draw Text
TextOut(hdc,
x,
y,
text,
wcslen(text));
//Set back old font
SelectObject(hdc, oldFont);
}
Реализация:
case WM_PAINT:
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
int y = 10;
drawText(L"Hey, im Roboto", L"Roboto", 50, 10, y, hdc);
y += 80;
drawText(L"Hey, im Arial", L"Arial",50, 10, y, hdc);
y += 80;
drawText(L"Hey, im Lucida Grande", L"Lucida Grande", 50, 10, y, hdc);
EndPaint(hwnd, &ps);
break;