Как можно достать pDC из своего класса, а не из "...::OnDraw(CDC* pDC)". Хочу сделать класс, который мог бы рисовать в нём.
Спасибо.
Здравствуйте, juks, Вы писали:
J>Как можно достать pDC из своего класса, а не из "...::OnDraw(CDC* pDC)". Хочу сделать класс, который мог бы рисовать в нём.
J>Спасибо.
Получаешь указатель на активный вид:
CFrameWnd* pFrameWnd=(CFrameWnd*)AfxGetMainWnd();
CView* pView = pFrameWnd->GetActiveView();
и затем DC:
CDC* pDC=pView->GetDC();
Здравствуйте, Nata1111, Вы писали:
N>Здравствуйте, juks, Вы писали:
J>>Как можно достать pDC из своего класса, а не из "...::OnDraw(CDC* pDC)". Хочу сделать класс, который мог бы рисовать в нём.
J>>Спасибо.
N>Получаешь указатель на активный вид:
N>N>CFrameWnd* pFrameWnd=(CFrameWnd*)AfxGetMainWnd();
N>CView* pView = pFrameWnd->GetActiveView();
N>
N>и затем DC:
N>N>CDC* pDC=pView->GetDC();
N>
затем не забудь вызвать
ReleaseDC(pDC);
Здравствуйте, juks, Вы писали:
J>Как можно достать pDC из своего класса, а не из "...::OnDraw(CDC* pDC)". Хочу сделать класс, который мог бы рисовать в нём.
J>Спасибо.
В своем классе проще так
CClientDC DC(this);
Здравствуйте, juks, Вы писали:
J>Как можно достать pDC из своего класса, а не из "...::OnDraw(CDC* pDC)". Хочу сделать класс, который мог бы рисовать в нём.
J>Спасибо.
Если у тебя класс производный от CWnd или выше по иерархии классов, то достаточно написать:
CDC * pDC = GetDC();
но обязательно, по окончании использования
ReleaseDC(pDC);
Здравствуйте, Yaumen, Вы писали:
Y>Здравствуйте, juks, Вы писали:
J>>Как можно достать pDC из своего класса, а не из "...::OnDraw(CDC* pDC)". Хочу сделать класс, который мог бы рисовать в нём.
J>>Спасибо.
Y>Если у тебя класс производный от CWnd или выше по иерархии классов, то достаточно написать:
Y>Y>CDC * pDC = GetDC();
Y>
Y>но обязательно, по окончании использования
Y>Y>ReleaseDC(pDC);
Y>
Для рисования в клиентской части окон существует специальный класс контекста CClientDC
Он в конструкторе автоматически вызывает API GetDC а в деструкторе автоматически вызывает API ReleseDC
И не надо заботится что где-то пропустишь ReleseDC
Здравствуйте, alexey kur, Вы писали:
AK>Здравствуйте, Nata1111, Вы писали:
N>>Здравствуйте, juks, Вы писали:
J>>>Как можно достать pDC из своего класса, а не из "...::OnDraw(CDC* pDC)". Хочу сделать класс, который мог бы рисовать в нём.
J>>>Спасибо.
N>>Получаешь указатель на активный вид:
N>>N>>CFrameWnd* pFrameWnd=(CFrameWnd*)AfxGetMainWnd();
N>>CView* pView = pFrameWnd->GetActiveView();
N>>
N>>и затем DC:
N>>N>>CDC* pDC=pView->GetDC();
N>>
AK>затем не забудь вызвать
AK>AK>ReleaseDC(pDC);
AK>
спасибо, попробую