![]() |
|
|
![]()
|
|
| Гость_Виталий |
|
|||
|
Unregistered |
Есть задание создать обертку для HDC объекта, но что такое обертка до меня так и не доходит.
|
|||
|
||||
| Plamenk |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 258 Регистрация: 18.2.2003 Репутация: нет Всего: 3 |
В GDI есть ряд функций, которые принимают в качестве параметра HDC. А тебе надо реализовать класс, который будет содержать HDC, как внутреннюю переменную и реализовывать функции аналогичные GDI (просто делегировать вызовы, а в качестве HDC подставлять внут. переменную), только в качестве параметра будет подставляться эта переменная. Наприме: В MFC СWnd обертка над HWND. |
|||
|
||||
| SeregaLBN |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 3.10.2003 Где: Киев Репутация: нет Всего: нет |
Есть тьма API ф-ций, использующих в качестве обычно первого параметра тип HDC.
Так вот, обёртка для HDC - это обычный С++ клаcc, где HDC является внутренней приватной переменной. А нужные тебе API ф-ции для работы с HDC описываются как одноимённые методы твоего класса, только уже без входящего параметра HDC. Вместо него ты должен использовать свою приватную переменную. Например, наверняка знакомая ф-ция:
Так вот в твоём классе она будет реализована примерно так:
Все остальные API ф-ции, где параметр HDC является входящим, реализуются аналогично. Исключения будут только для методов твоего класса которые создают/уничножают твой внутренний(приватный) HDC. Гдето всё вместе это будет выглядить примерно так:
Кстати, обёрткой в MFC для HDC является класс CDC. Можешь посмотреть его реализацию... |
||||||
|
|||||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |