Форум: "WinAPI";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];
ВнизКак правильно обрабатывать сообщение WM_PAINT? Найти похожие ветки
← →
Baz (2002-05-31 10:50) [0]Ситуэйшн: я нарисовал что-то мышкой в окне (в обработчике на WM_MOUSEMOVE). Хочу, чтоб при изменении размероов окна мои художества не стирались. Для этого в обработчике WM_PAINT пишу
ValidateRect(hWnd,NULL);
в детской надежде, что вся клиентская область будет объявлена "правильной" и не будет перерисовываться. Но все стирается. То же и с частью клиентской области.
Расскажите, добрые люди, плз, попонятнее про сообщение WM_PAINT и функции ValidateRect, InvalidateRect, RedrawWindow, UpdateWindow.
Ну, в крайнем случае, просто подскажите, что я делаю не так?
Заранее спасибо, Baz
← →
Alex G u e s t (2002-05-31 11:44) [1]Вот тут немного есть.
"Начало работы с графикой в Delphi. Системное сообщение WM_PAINT."
http://www.delphikingdom.com/mastering/gdi/index.htm
← →
Baz (2002-06-01 06:13) [2]Спасибо, то чтот нужно. Но, я,примерно, так все и представлял :(. И все равно не понимаю, что же я делаю не так. Или как сделать правильно.
← →
Baz (2002-06-01 08:03) [3]Кажется, могу ткнуть пальцем в то, чего не понимаю. Как понять " Функция BeginPaint удаляет из области обновления всю рабочую область окна"? Ведь область обновления (Update Region) - это то, что БУДЕТ перерисовываться? А удалить из области обновления (validate) - это значит сказать системе "Эту часть перерисовывать не надо!" Кто-нибудь, подскажите, что же тогда потом перерисовывается?
← →
Baz (2002-06-03 06:45) [4]Ну вот, выходные кончились. Может теперь кто-нибудь поможет?
← →
ggrisha (2002-06-03 10:49) [5]При изменении размера обновление и так не происходит. Наверно ты его сам стираешь в WM_SIZE. Изображение сотрется в случае если его перекроет другое окно или край экрана. В этой ситуации поможет только повторная перерисовка изображения, но не отключение стирания.
← →
Baz (2002-06-03 12:31) [6]При изменении размера обновление и так не происходит
Не знаю... Убрал все из обработчика WM_SIZE, все равно стирается. Кстати, заметил, что изображение стирается при переходе мышки с одной системной кнопки на другую (напр., со "СВЕРНУТЬ" на "ЗАКРЫТЬ"). Заметьте, не при нажатии. Это глюк?
Значит, все-таки заново перерисовывать? Жаль...
А вопрос в догонку. Как функциями API установить нижние границы размера окна? WM_GETMINMAXINFO посоветовали, а я что-то не могу от него ничего добиться.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c