void CMENU2View::OnDraw(CDC* pDC)
{
CMENU2Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here pDC->SetTextColor( m_nCurrentColor );
pDC->TextOut (100,100,"I love c++");
CPaintDC dc(this);
CPen m_Pen;
LOGPEN logpen;
logpen.lopnStyle=PS_SOLID; //画笔样式
logpen.lopnWidth.x=PenWidth; //画笔宽度
logpen.lopnWidth.y=PenWidth;//画笔宽度
logpen .lopnColor=RGB(0,0,255);
m_Pen. CreatePenIndirect(&logpen );
dc.Ellipse(0,0,10,10);
}
不是已经给你dc了吗,参数:CDC *pDC
就是dc
用它来画图
去掉CPaintDC dc(this);
把后面的dc.
替换为pDC->
还有你的画笔怎么没用啊
浪费资源呀
加上CPen *oldpen=pDC->SelectObject(&m_pen);
最后在pDC->SelectObject(oldpen);
{
pdc->Ellipse(0,0,10,10);
}
OnDraw(CDC* pDC)//这个pDC已经可以用来画图了。
pDC->SelectObject(&m_pen);//为CDC绘图环境选择绘图工具
//接下来画你想要的东西
但是可以这样用:
CPaintDC *dc=(CPaintDC *)this->GetDC();
CPen m_Pen;
LOGPEN logpen;
logpen.lopnStyle=PS_SOLID;
logpen.lopnWidth.x=5;
logpen .lopnColor=RGB(0,0,255);
m_Pen. CreatePenIndirect(&logpen );
CPen *oldpen=dc->SelectObject(&m_Pen);
dc->Ellipse(0,0,80,80);
dc->SelectObject(oldpen);
CRect rectClient;
GetClientRect(rectClient);
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetWindowExt(1000,1000);
pDC->SetViewportExt(rectClient.right,-rectClient.bottom);
pDC->SetViewportOrg(rectClient.right/2,rectClient.bottom/2);
pDC->Ellipse(CRect(-500,-500,500,500));