22. Последовательность действий приложения при формировании рисунка (1058873)
Текст из файла
1.Последовательность действий приложения при формировании рисункаКак правило, приложения выполняют всю работу по рисованию во время обработки сообщенияWM_PAINT, хотя часто требуется рисовать и во время обработки других сообщений.В любом случае приложение должно придерживаться следующей последовательности действийпри формировании рисунка:1. Получение или создание контекста отображения;2. Установка необходимых атрибутов в контексте отображения;3. Выполнение операций рисования;4. Освобождение или удаление контекста отображения.Последнее действие (освобождение или удаление контекста отображения) должно быть обязательновыполнено.
Самый простой способ полностью нарушить работоспособность Windows - забыть освободитьполученный контекст отображения или удалить созданный контекст отображения или устройства.Так как контекст отображения - критический ресурс, его необходимо освобождать сразу, как только внем отпадет необходимость. Операционная система Windows выполняет кеширование обычного контекстаотображения (есть и необычные контексты отображения, но об этом позже), причем кешируются толькопять контекстов. Если Windows не может удовлетворить запрос какого-либо приложения на выделениеконтекста отображения, вся операционная система окажется в критическом состоянии, единственнымвыходом из которого будет полный перезапуск Windows.Таким образом, при обработке сообщения WM_PAINT (при формировании рисунка) происходитследующая последовательность действий:PAINTSTRUCT ps;// Задаем пустую структуру, для послед.
использования при рисованииHDC hdc;// Указатель на структуру контекста отображения........case WM_PAINT:{// Получаем контекст отображенияhdc = BeginPaint(hwnd, &ps);// После получения контекста отображения можно вызывать функции GDITextOut(hdc, 0, 0, (LPSTR)"String", 6);..// Освобождаем контекст отображенияEndPaint(hwnd, &ps);break;}Функции BeginPaint и EndPaint можно использовать только внутри обработчика сообщения WM_PAINT.Если же приложению требуется рисовать во время обработки других сообщений, оно должно получитьконтекст отображения с помощью функции: HDC WINAPI GetDC(HWND hwnd);После завершения процедуры рисования перед выходом из обработчика сообщения следуетосвободить полученный контекст отображения, вызвав функцию ReleaseDC:int WINAPI ReleaseDC(HWND hwnd, HDC hdc);.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.