菜鸟提问,高手请指点~~~~~~~~~~
为什么这行代码不能实现用红色填充圆的功能呢
请高手指教~~~~~
........
protected:
void text1(CDC* pDC);
void text2(CDC* pDC);
.........
void CMyVC3View::OnDraw(CDC* pDC)
{
CMyVC3Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CRect rect;
GetClientRect(&rect);
pDC->SetMapMode(MM_LOMETRIC);
pDC->SetViewportOrg(int(rect.right/2),int(rect.bottom/2));
text1(pDC);
text2(pDC);
// TODO: add draw code for native data here
}
........
void CMyVC3View::text1(CDC* pDC)
{
CPen newpen(PS_NULL,1,RGB(255,0,0));
CPen* oldpen;
CBrush MyBrush;
CBrush* pBrush;
MyBrush.CreateSolidBrush(RGB(0,255,0));
pBrush=pDC->SelectObject(&MyBrush);
oldpen=pDC->SelectObject(&newpen);
pDC->Rectangle(0,700,500,0);
pDC->SelectObject(pBrush);
pDC->SelectObject(oldpen);
MyBrush.DeleteObject();
}
void CMyVC3View::text2(CDC* pDC)=====>>就是这个函数的问题,只能显示圆的轮廓,圆内部没有被红色填充
{
CPen newPen;CBrush newBrush;
CPen* oldPen;CBrush* oldBrush;
newPen.CreatePen(PS_SOLID,1,RGB(255,0,0));
oldPen=pDC->SelectObject(&newPen);
newBrush.CreateSolidBrush(RGB(255,0,0));
oldBrush=pDC->SelectObject(&newBrush);
pDC->Arc((0-350),(0+350),(0+350),(0-350),0,350,0,350);
pDC->SelectObject(oldPen);
pDC->SelectObject(oldBrush);
newPen.DeleteObject();
newBrush.DeleteObject();
}
........
很急啊
一定加分
问题点数:20、回复次数:4Top
1 楼dawndu(东南飞)回复于 2005-09-25 23:03:15 得分 10
画圆一般是用pDC->Ellipse(.....)
你用的画弧的函数,我也不知道行不行,从来没有用过这个画圆Top
2 楼jay0518(jay)回复于 2005-09-26 12:35:14 得分 0
终点和起点是同一个点的弧不就是圆嘛
关键问题不是能不能画出圆(圆能够显示)的问题,而是圆的内部没有被填充红色Top
3 楼i_noname(晚九朝五)回复于 2005-09-26 12:41:38 得分 10
CRgn::CreateEllipticRgn
then use CDC::FillRgn or CDC::PaintRgnTop
4 楼jay0518(jay)回复于 2005-09-26 12:51:16 得分 0
to dawndu(东南飞)兄弟:你的方法能行,谢谢你
i_noname(晚九朝五) 也感谢你~支持Top




