Операционная система Microsoft Windows 3.1 для программиста -том 1


Контекст отображения - часть 2


п. Все эти характеристики текста хранятся в структуре контекста отображения. Идентификатор контекста отображения передается функции TextOut в качестве первого параметра.

Когда вы создаете контекст отображения, Windows заполняет соответствующую структуру значениями по умолчанию. Для простоты в нашем приложении мы не стали переопределять шрифт или другие характеристики текста, воспользовавшись значениями, подставленными операционной системой Windows при создании контекста отображения.

Используемая система координат также определяется в контексте отображения. По умолчанию в левом верхнем углу внутренней области окна (client area), ограниченной сверху заголовком, а с других сторон рамкой, находится начало координат - точка с координатами (0,0). Ось x направлена слева направо, ось y - сверху вниз. Изменяя контекст отображения, вы можете выбрать другую систему координат, например расположив начало координат в центре внутренней области окна.

Контекст отображения не позволит вам вывести текст за пределами внутренней области окна. Однако позже вы научитесь создавать другой тип контекста - контекст устройства (device context), относящийся к всей поверхности экрана видеомонитора. Этот контекст позволит вам выводить текст или графические изображения в любое место экрана.

Существует и другой способ получения контекста отображения, который должен использоваться при обработке других, отличных от WM_PAINT, сообщений:

hdc = GetDC(hwnd); TextOut(hdc, 10, 40, "Сообщение WM_LBUTTONDOWN", 24); ReleaseDC(hwnd, hdc);

Для получения контекста отображения в этом случае следует воспользоваться функцией GetDC. После использования необходимо освободить контекст, вызвав функцию ReleaseDC.

Обратим еще раз ваше внимание на то, что при обработке сообщения WM_PAINT для создания и освобождения контекста отображения необходимо использовать функции BeginPaint и EndPaint, а во всех остальных случаях - функции GetDC и ReleaseDC.




Начало  Назад  Вперед



Книжный магазин