Мне нужно нарисовать ELLIPSE на C ++ MFC, используя D2D и класс CD2DEllipse, я хочу, чтобы, если я изменил размер окна, размер эллипса тоже изменился.
Я хочу, чтобы указатель объектаувидеть класс ... и поэтому я объявляю его заголовку:
//hpp
class CmyclassView : public CView
{
...
CD2DEllipse* pE;
...
}
case A:
Мне нужно инициализировать объект эллипса CD2DEllipse каждый раз, когда я изменяю размер представления ....WM_PAINT -> OnDraw2D ... но я помещаю эллипс в кучу из-за "нового" ... и куда идет предыдущий эллипс ...
Если я закрываю приложение, которое должен вызывать d_str "delete pE; "?
// cpp
afx_msg LRESULT CDXALGOView::OnDraw2D(WPARAM wParam, LPARAM lParam)
{
C_pRT = (CHwndRenderTarget*)lParam;
ASSERT_VALID(C_pRT);
pE = new CD2DEllipse(D2D1::Ellipse(xyC,r,r)); <<-------
return TRUE;
}
case B: или лучше всего создать объект только один раз в конструкторе, обновить параметры на ondraw, и когда я закрываю приложение, я удаляю объект c_str
{
pE = new CD2DEllipse(D2D1::Ellipse(xyC,r,r));
}
afx_msg LRESULT CDXALGOView::OnDraw2D(WPARAM wParam, LPARAM lParam)
{
C_pRT = (CHwndRenderTarget*)lParam;
ASSERT_VALID(C_pRT);
pE.point = xyC; <<-------
pE.radiusX = r;
pE.radiusY = r;
return TRUE;
}