画出三角形,然后ExtFloodFill
解决方案 »
- 你会吗?这个网络编程基本问题啊
- CFileDialog经堂打开失败 老死机.与CoInitialize有关吗
- BCG类库里面关于鼠标改变CBCGPDockingControlBar控件大小?急啊!!!
- 谁能帮我调试一下这个代码的问题,总在运行一段时间后就崩溃。
- int flag 在没有符值前为什么值显示为-858993460???????????
- 一个很值得研究的dll问题,请大家来探讨一下!!
- 请问CRecordset中如何添加新纪录呢?
- 各位大虾请进!一个ATL COM 发布问题。
- 请问,如何Disable SDI的Minimize box?
- 高分奉送,在线等待--VC的基于dialog的应用程序,可以加上数据库的引用吗?
- 用VC++做多线程的FTP
- 求助:用VC做数据库转换程序怎么捕获错误???
CPoint trigle[3];
float sinpt=(ptKnobCenter.x-m_ptCenter.x)/(float)(m_nRadius+nKnobRadius);
float cospt=(ptKnobCenter.y-m_ptCenter.y)/(float)(m_nRadius+nKnobRadius);
CRect pointer;
trigle[0].x=m_ptCenter.x-20*cospt;//A
trigle[0].y=m_ptCenter.y-20*sinpt;
trigle[1].x=m_ptCenter.x-20*cospt;//B
trigle[1].y=m_ptCenter.y-20*sinpt;
trigle[2].x=ptKnobCenter.x;//C
trigle[2].y=ptKnobCenter.y;
//////////////////
trigle提供三角形的三个顶点
////////////////
CRgn rgnPointer; rgnPointer.CreatePolygonRgn(trigle,3,WINDING);
CBrush pointKnob(::GetSysColor(COLOR_3DSHADOW));
//
pDC->FillRgn(&rgnPointer, &pointKnob);
pointKnob.DeleteObject();
MoveTo(p1);
lineTo(p2;
lineTo(p3);
endpath() ;
然后把path变为坐标,在进行BRUSH的绘制。
你查一下PATH的相关资料。
point[0].x=2;
point[0].y=7;
point[1].x=4;
point[1].y=34;
point[2].x=48;
point[2].y=67;//确定三角形的重心
POINT p1,p2;
p1.x= (point[1].x+point[2].x)/2;
p1.y= (point[1].y+point[2].y)/2;
p2.x= (point[0].x+p1.x)/2;
p2.y= (point[0].y+p1.y)/2;
pDC->MoveTo(point[0]);
pDC->LineTo(point[1]);
pDC->LineTo(point[2]);
pDC->LineTo(point[0]);
CBrush pointKnob(::GetSysColor(COLOR_3DSHADOW));
pDC->SelectObject(&pointKnob);
ExtFloodFill(pDC->m_hDC,p2.x,p2.y,RGB(0,0,0),FLOODFILLBORDER);