DrawStatusText не рисует текст при первом вызове, только при последующих вызовах - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть программа, которая использовала функцию DrawStatusTextW() во время сообщения WM_PAINT.Когда он вызывается, текст не рисуется.Однако при последующих вызовах, например, при перемещении окна под панелью задач и его возврате вверх, текст рисуется.

Я пытался использовать различные флаги с функцией, а также пытался поместить его в WM_CREATEсообщение.Никаких эффектов.

   RECT status_rect;
HDC status_dc;

SNDMSG(controls.status_bar, SB_GETRECT, 0, reinterpret_cast<LPARAM>(&status_rect));
status_dc = GetDC(controls.status_bar);
SelectObject(status_dc, status_font);
DrawStatusText(status_dc, &status_rect, L"Ready.", SBT_NOBORDERS);
ReleaseDC(controls.status_bar, status_dc);

Следует нарисовать текст статуса при первом вызове.Мне не нужно перемещаться по окну, чтобы оно само перерисовывалось.

1 Ответ

0 голосов
/ 17 февраля 2019

Каждый HWND обрабатывает свою собственную картину.Если вы рисуете в строке состояния во время рисования родительского окна, собственная обработка краски в строке состояния уничтожит то, что вы нарисовали.

Если вы хотите покрасить строку состояния, сделает строку состояниявладелец нарисовал и обработал сообщение WM_DRAWITEM в родительском окне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...