Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > CDC*


Автор: InsideYou 2.6.2008, 11:25
Народ, пишется игрушка на MFC. Есть функция допустим void CKubView::OnLButtonUp(UINT nFlags, CPoint point)
И собственно в ней надо узнать сам CDC(идентификатор окна или как там его). Пишу CDC* hz; передаю в другую функцию и вылетает ошибка. Проверяю в дебаггере, в hz ничего нет вообще. Как можно описать этот CDC?

Заранее спасибо.

Автор: chaos 2.6.2008, 11:29
для начала - вопрос надо было и создавать в разделе МФЦ
GetDC нет подходит и методы Attach и Detach класса CDC ?

Добавлено через 1 минуту и 12 секунд
PS точно не помню и проверить не могу, но по моему у сласса CWnd есть мотод который возвращает CDC

Автор: Andrey44 2.6.2008, 11:49
Пиши просто:
Код

CClientDC dc(this);

// или

CDC *dc = GetWindowDC();

Автор: dizzy1984 2.6.2008, 11:54
Для mfc это CWnd::GetDC(), для winapi ::GetDC(). После использования полученного значения его нужно, AFAIK, освободить с помощью соответствующей ReleaseDC()

Автор: InsideYou 2.6.2008, 12:01
Цитата(Andrey44 @ 2.6.2008,  11:49)
Пиши просто:
Код

CClientDC dc(this);

// или

CDC *dc = GetWindowDC();



Спасибо тебе просто огромнейшее! Век буду обязанsmile

Добавлено через 9 минут и 51 секунду
И ещё вопросец, как очистить окошко? 

Автор: Andrey44 2.6.2008, 12:17
Код

Invalidate(////);

Это если ты не рисуешь в OnPaint()

Или просто закрашивай окно каким нибудь цветом
Код

dc->FillSolidRect(RGB(0, 0, 0));//черный цвет

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)