Содержимое теряется при перерисовке окна - PullRequest
1 голос
/ 15 апреля 2020

В настоящее время я работаю с windows API в C. Я думал, что было бы смешно сделать простую доску. Все работает нормально. Это рисунок et c, et c. Проблема в том, что содержимое теряется при перекрашивании / обновлении / изменении размера окна ... Я подумал, может быть, мне стоит сохранить HD C или что-то еще, но тогда я не знаю, как его вернуть. Как мне это решить? Я подумал, что это не должен быть очень сложный вопрос, но я все равно не могу найти что-то в Google.

1 Ответ

2 голосов
/ 15 апреля 2020

Вам нужно обработать событие WM_PAINT и перекрасить недействительный регион в полном объеме. Вот что такое WM_PAINT - запрос системы перерисовать грязную область.

Для вашего конкретного приложения c звучит так, как будто вы должны создать контекст устройства вне экрана (CreateCompatibleDC), соответствующее растровое изображение (CreateBitmap) размера вашего холста, выполните все операции рисования там и вызовите InvalidateRect в вашем окне. Когда WM_PAINT срабатывает, позвоните BitBlt, чтобы перенести соответствующую часть этого растрового изображения на экран.

...