win32: TextOut не отображается - PullRequest
0 голосов
/ 23 декабря 2010

У меня недавно было мое главное окно, чтобы написать текст с помощью WM_PAINT, но теперь я понимаю, что это, возможно, не лучшее сообщение, чтобы сделать это, поэтому я пробую другую версию;при щелчке по пункту меню отправляется сообщение ID_FILE_PID, которое создает 4 новых окна, а также отображает текст в главном окне (функция paintEditSigns).4 окна работают нормально, но текст не работает вообще, если я не сделаю это в функции main (), как показано ... что это такое?O_O

Кстати: я до сих пор не понимаю, почему отображение кода в StackOverflow выглядит таким странным, когда я пишу, почему это так?

1 Ответ

1 голос
/ 23 декабря 2010

Вы можете только использовать BeginPaint / EndPaint в ответ на WM_PAINTWM_PAINT - подходящее место для рисования, подобного этому.

Windows вызывает WM_PAINT, когда часть окна «становится недействительной».Например, если вы восстанавливаете окно, или часть окна становится видимой после перемещения окна в сторону или изменения размера окна.

Когда вам нужно вручную обновить отображение, «лишить законной силы» область, которую вынеобходимо перерисовать, вызвав InvalidateRect (это сообщает Windows область окна, которая должна быть перерисована).

Обычным является просто сделать недействительным все окно, а не вычислять фактическую границу области с идеальным пикселемВы хотите нарисовать.

...