User и GDI объекты поддерживают только один описатель (handle) объекта. Процессы не могут наследовать или дублировать описатели user или GDI объектов.
Описатели user объектов общедоступны для всех процессов. Это значит, что любой процесс может использовать описатель user объекта, при условии, что процесс имеет доступ к объекту как определено безопасностью пользователя. Более подробную информацию о безопасности смотри в разделе ‘Безопасность’.
Описатели GDI объектов приватны для процесса. Это значит, что только процесс, который создал GDI объект, может использовать этот описатель.
Рисунок 1
После того, как объект окна был создан, приложение может использовать описатель окна, чтобы отобразить или изменить окно. Описатель существует, пока объект окна не уничтожен.
Рисунок 2
В следующей таблице представлены Windows user объекты, а также конструктор–функция и деструктор–функция (далее по тексту конструктор или деструктор) для каждого объекта. Конструктор либо создает объект и описатель объекта, либо просто возвращает существующий описатель объекта. Деструктор удаляет объект из памяти и уничтожает описатель объекта.
Следует иметь в виду, что window station и объекты desktop создаются и поддерживаются системой; приложения не могут удалить эти объекты.
Объект |
Конструктор |
Деструктор |
Таблица акселераторов |
CreateAcceleratorTable |
DestroyAcceleratorTable |
Cursor |
CreateCursor, LoadCursor, GetCursor, SetCursor |
DestroyCursor |
DDE conversation |
DdeConnect, DdeConnectList, DdeQueryNextServer, DdeReconnect |
DdeDisconnect, DdeDisconnectList |
Desktop |
GetThreadDesktop |
– |
Hook |
SetWindowsHook, SetWindowsHookEx |
UnhookWindowsHook, UnhookWindowsHookEx |
Menu |
CreateMenu, CreatePopupMenu, GetMenu, GetSubMenu, GetSystemMenu, LoadMenu, LoadMenuIndirect |
DestroyMenu |
Window |
CreateWindow, CreateWindowEx, CreateDialogParam, CreateDialogIndirectParam, CreateMDIWindow, FindWindow, GetWindow, GetClipboardOwner, GetDesktopWindow, GetDlgItem, GetForegroundWindow, GetLastActivePopup, GetOpenClipboardWindow, GetTopWindow, WindowFromDC, WindowFromPoint, and others |
DestroyWindow |
Window position |
BeginDeferWindowPos |
EndDeferWindowPos |
Window station |
GetProcessWindowStation |
– |
Таблица 1
В следующей таблице представлены Windows GDI объекты, а также конструктор и деструктор для каждого объекта. Конструктор либо создает объект и описатель объекта, либо просто возвращает существующий описатель объекта. Деструктор удаляет объект из памяти и уничтожает описатель объекта.
Объект |
Конструктор |
Деструктор |
Bitmap |
CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDIBitmap, CreateDIBSection, CreateDiscardableBitmap |
DeleteObject |
Brush |
CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush |
DeleteObject |
Font |
CreateFont, CreateFontIndirect |
DeleteObject |
Palette |
CreatePalette |
DeleteObject |
Pen |
CreatePen, CreatePenIndirect |
DeleteObject |
Extended pen |
ExtCreatePen |
DeleteObject |
Region |
CombineRgn, CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn, ExtCreateRegion, PathToRegion |
DeleteObject |
Device context (DC) |
CreateDC, GetDC |
DeleteDC, ReleaseDC |
Memory DC |
CreateCompatibleDC |
DeleteDC |
Metafile |
CloseMetaFile, CopyMetaFile, GetMetaFile, SetMetaFileBitsEx |
DeleteMetaFile |
Metafile DC |
CreateMetafile |
CloseMetaFile |
Enhanced metafile |
CloseEnhMetaFile, CopyEnhMetaFile, GetEnhMetaFile, SetEnhMetaFileBits |
DeleteEnhMetaFile |
Enhanced-metafile DC |
CreateEnhMetaFile |
CloseEnhMetaFile |
Таблица 2
Функция CreateAcceleratorTable создает таблицу акселераторов (accelerator table).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.