|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Operations on Graphic Objects
Once an application creates a display or printer device context, it can begin drawing on the associated device or, in the case of the memory device context, it can begin drawing on the bitmap stored in memory. However, before drawing begins and sometimes while drawing is in progress, it is often necessary to replace the default objects with new objects.
An application can examine a default object's attributes by calling the GetCurrentObject and GetObject functions. The GetCurrentObject function returns a handle identifying the current pen, brush, palette, bitmap, or font, and the GetObject function initializes a structure containing that object's attributes. Some printers provide resident pens, brushes, and fonts that can be used to improve drawing speed in an application. Two functions can be used to enumerate these objects: EnumObjects and EnumFontFamilies. If the application must enumerate resident pens or brushes, it can call the EnumObjects function to examine the corresponding attributes. If the application must enumerate resident fonts, it can call the EnumFontFamilies function (which can also enumerate GDI fonts).
Once an application determines that a default object needs replacing, it creates a new object by calling one of the following creation functions.
Graphic object Function Bitmap CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDiscardableBitmap, CreateDIBitmap Brush CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush Color Palette CreatePalette Font CreateFont, CreateFontIndirect Pen CreatePen, CreatePenIndirect, ExtCreatePen Region CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn
Each of these functions returns a handle identifying a new object. After an application retrieves a handle, it must call the SelectObject function to replace the default object. However, the application should save the handle identifying the default object and use this handle to replace the new object when it is no longer needed. When the application finishes drawing with the new object, it must restore the default object by calling the SelectObject function and delete the new object by calling the DeleteObject function. Failing to delete objects causes serious performance problems.
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Действия на Графических Объектах
Как только приложение создаст дисплейный или контекст устройства принтера, оно может начать рисоваться на связанном устройстве или, в случае контекста устройства памяти, это может начать рисоваться в побитовом отображении сохраненном в памяти. Тем не менее, прежде, чем чертеж начнет и иногда тогда как чертеж осуществляется, он часто необходимо должен заменить встроенные объекты новыми объектами.
Приложение может изучить встроенные объектные атрибуты вызывая GetCurrentObject и функции GetObject. Функция GetCurrentObject возвращает ручку, опознающую текущую ручку, щетку, палитру, побитовое отображение, или шрифт, и функция GetObject инициализирует структуру, содержащую эти объектные атрибуты. Некоторые принтеры обеспечивают резидентные ручки, щетки, и шрифты, которые могут быть использованы, чтобы улучшать чертеж скорости в приложении. Две функции могут быть использованы, чтобы перечислять эти объекты: EnumObjects и EnumFontFamilies. Если приложение должно перечислить резидентные ручки или щетки, оно может назвать функцию EnumObjects, чтобы изучать соответствующие атрибуты. Если приложение должно перечислить резидентные шрифты, оно может назвать функцию EnumFontFamilies (который может также перечислить шрифты GDI).
Как только приложение определит, что встроенному объекту нужно заменять, это создает новый объект вызывая одну из следующих функций создания.
Графическая объектная Функция Побитовое отображение CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDiscardableBitmap, CreateDIBitmap Чистит CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, Цвет CreateSolidBrush Palette CreatePalette Font CreateFont, Ручка CreateFontIndirect CreatePen, CreatePenIndirect, ExtCreatePen Регион CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn
Каждый из этого возврата функций ручка, опознающая новый объект. После того, как приложение извлечет ручку, оно должно назвать функцию SelectObject, чтобы заменять встроенный объект. Тем не менее, приложение должно сохранять ручку, опознающую встроенный объект и использовать эту ручку, чтобы заменять новый объект когда он не - больше не нужно. Когда приложение завершается рисуя с помощью нового объекта, оно должно восстановить встроенный объект вызывая SelectObject функционирует и удаляет новый объект вызывая функцию DeleteObject. Терпя неудачу, чтобы удалять причины объектов серьезных проблем исполнения.
|
|
|
|
| |