Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Янг Майкл Дж. -> "Visual С++ 6. Полное руководство: В 2 т.(том2)" -> 60

Visual С++ 6. Полное руководство: В 2 т.(том2) - Янг Майкл Дж.

Янг Майкл Дж. Visual С++ 6. Полное руководство: В 2 т.(том2) — Бином, 2006. — 530 c.
Скачать (прямая ссылка): vicualcc2006t2.djvu
Предыдущая << 1 .. 54 55 56 57 58 59 < 60 > 61 62 63 64 65 66 .. 173 >> Следующая

Для всех режимов отображения начало системы логических координат (т.е. точка с логическими координатами 0, 0) изначально расположено в верхнем левом углу рабочей области окна. Однако если класс окна представления порожден от cscroliview (гл. 13), MFC согласует относительное положение логического начала с прокруткой документа. Изменяется атрибут, называемый началом представления — viewport origin. Вспомните гл. 13: для порождаемого от cscroliview
класса окна представления необходимо передать идентификатор режима отображения, используемого при вызове функции CScrollView: : setscrollsizes для установки размера прокрутки. Кроме того, в гл. 21 вы узнаете, что MFC обычно изменяет начало представления, чтобы печатать данную страницу в многостраничном документе.
: Alternative Mapping Modes ИВ В
Увеличение горизонтальной-»•
координаты
к
Увеличение вертикальной координаты
Рис. 19.4. Направление увеличения координат для альтернативных режимов отображения
мм^шетотлзн, мм_н1метк1с, ММ_1,оеыс1лзн, мм_ьометк1с И мм_ты1рб
Совет
Логические координаты необходимо описывать при вызове любой из функций отображения текста (см. гл. 18), функций рисования (см. гл. 19) или функций битовых операций (например, BitBlt, гл. 20). Однако многие функции Windows и уведомляющие сообщения используют координаты устройства, например, функции cwnd: :GetciientRect и cwnd: :Movewindow и сообщение wm_mousemove. Если используется стандартный режим отображения и окно представления не поддерживает прокрутку, то не стоит беспокоиться о типе координат, используемых отдельной функцией или сообщением, так как. логические координаты будут совпадать с координатами устройства. Но если класс представления поддерживает прокрутку или используется альтернативный режим отображения, уделите внимание типам применяемых координат. Вспомните: логические координаты можно преобразовать в координаты устройства, вызвав функцию LPtoDP класса cdc, а координаты устройства - в логические, вызвав функцию DPtoLP класса cdc.
Примечание
В этом разделе рассматриваются логические координаты и координаты устройства. Значения координат указывают на положение точки на поверхности экрана. Однако иногда используются простые значения измерении, показывающие размер некоторого элемента. Значения измерения можно представить в логических единицах, т. е. в единицах, определяемых текущим режимом отображения, например, в единицах ширины пера, переданных в функцию CPenr.CreatePen или в размерах графического блока, переданных в функцию CDC.BitBIt (гл. 20). Значения измерения могут также задаваться в единицах устройства (например, в пикселях) для величины прокрутки, передаваемой в CWnd::ScrollWindow, или размера окна, передаваемого сообщением WM_SIZE. В документации на функцию или сообщение должно быть указано, какие единицы в них используются.
Важным преимуществом в использовании альтернативных режимов отображения
(например, mm_hienglish, mm_himetric, mm_loenglish, mm_lometric или
mm_twis, а также mm_anisometric или mm_isometric при соответствующем задании единиц) является то, что размер рисуемого изображения не зависит от устройства, на котором оно отображается. И наоборот, при использовании стандартного режима отображения мм_техт размер зависит от разрешения устройства. Соответственно, альтернативные режимы отображения полезны для программ, которые согласуются с принципами WYSIWYG (What You See Is What You Get - что вы видите, то и получаете), особенно программ, в которых размер объекта на экране такой же, как его размер на любом принтере или на другом устройстве вывода. Однако в примерах программ, приведенных в оставшейся части книги, для простоты используется стандартный режим отображения.
Примечание
Информация об определении и использовании альтернативных режимов отображения - в документации на функцию SetMapMode класса CDC и другие функции отображения этого класса. Полный список этих функций приведен в следующих разделах справочной системы: Visual С++ Documentation, Reference, Microsoft Foundation Class Library and Templates, Microsoft Foundation Class Library, Class Library Reference, CDC, CDC Class Members, Mapping Functions. Общий анализ режима отображения - в таких разделах: Platform SDK, Graphics and Multimedia Services, GDI, Coordinate Spaces and Transformations.
Создание графических изображений_
После создания объекта контекста устройства и выбора инструментов рисования и атрибутов можно приступить непосредственно к рисованию. В класс CDC входят функции для рисования точек, прямых и кривых линий, а также фигур с замкнутыми контурами.
Для этих функций размещение фигуры задается логическими координатами. В паре координат, описывающих точку и передаваемых в функцию, горизонтальная координата передается перед вертикальной. Горизонтальная координата часто называется координатой х, а вертикальная — у. Координаты передаются во все функции рисования как значения типа int. Поскольку разрядность данных типа int составляет 32 бита, в них может храниться значение в диапазоне от —2147483648 до +2147483647. Программам в среде Windows NT можно передавать значения координат внутри полного диапазона. Однако для Windows 95 можно передавать значения координат только в диапазоне от —32768 до +32767, представляющем собой диапазон 16-битовых целых значений (ограничение значения типа int).
Предыдущая << 1 .. 54 55 56 57 58 59 < 60 > 61 62 63 64 65 66 .. 173 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100