急:MFC交互画出多边形后怎样用刷子填充?

这样的
多边形是交互式画出的 鼠标左键单击为起点 起点用CPoint类定义StartPoint
起点坐标StartPoint.x,StartPoint.y
鼠标右键单击为多边形终点 终点定义为LastPoint
右键单击后线自动连接起点和终点(MoveTo和LineTo)
可以画出任意多边形
上述功能已经实现

问题:怎样用画刷填充上述自定义的多边形&&怎样用*号或者#号填充
或者用字符串填充
自己定义一个fill()函数,这个fill里面的代码应该怎么写?
希望能给出fill()源码
还有个小要求就是右键单击完成多边形绘制后自动填充多边形
如果我说的不够详细,请指出,我一定补充上来
非常感谢!!!

可以在过程中先用MoveTo,LineTo,并记下鼠标单击的各点,鼠标右击后清除以上线条,选入画刷并用Polygon重画。比如:
在视图类中
#include <afxtempl.h>
CArray<CPoint,CPoint>*myArray;//存储坐标点
构造函数中初始化
myArray=new CArray<CPoint,CPoint>;
鼠标左击时
myArray->Add(point);
右击时
int nSize=myArray->GetSize();
CPoint *pt=new CPoint[nSize];
for(int i=0;i<nSize;i++)
{

pt[i]=myArray->GetAt(i);

}
CClientDC dc(this);
CBrush brush(RGB(0,255,0)),*pOldBrush;//以绿画刷为例
pOldBrush=dc.SelectObject(&brush);
dc.Polygon(pt,nSize);
myArray->RemoveAll();
delete pt;
dc.SelectObject(pOldBrush);
经调试无误
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-05-03
用MoveTo和LineTo画出的图形看似封闭的,其实不是,其实是一根根的直线。DC会用默认的Brush填充封闭区域,不信你用Rectangle或Ellipse试试。画封闭多边形用Polygan(好像是这样写的,查查MSDN)

急:MFC交互画出多边形后怎样用刷子填充?
可以在过程中先用MoveTo,LineTo,并记下鼠标单击的各点,鼠标右击后清除以上线条,选入画刷并用Polygon重画。比如:在视图类中 include <afxtempl.h> CArray<CPoint,CPoint>*myArray;\/\/存储坐标点 构造函数中初始化 myArray=new CArray<CPoint,CPoint>;鼠标左击时 myArray->Add(point);右击时 in...

MFC多边形填充问题...大侠们...帮帮忙啊!最好是源代码
用Polygon来填充,例如你的雪花的各个顶点如下 POINT pt1[5];pt1[0] = CPoint(445,75);pt1[1] = CPoint(440,83);pt1[2] = CPoint(420,110);pt1[3] = CPoint(408,155);pt1[4] = CPoint(435,155);CBrush brush1(RGB(255,0,0));dc.SelectObject(&brush1);dc.Polygon(pt1...

图形学作业,意图用MFC实现,求指教
PolyBezierTo 画一条或多条Bezier样条,并把当前位置移到最后一条Bezier样条的终点 FillRect 用指定画刷填充给定矩形 FrameRect 在矩形周围绘制边界 InvertRect 反转矩形内容 DrawEdge 绘制矩形边 Ellipse 绘制椭圆 Polygon 绘制多边形,包含由线段连接的一个或多个点(顶点)Polyline 绘制多边形,包含连接指定点...

如何用VC++6.0中的MFC做任意多边形的颜色填充?
先 BeginPath();再使用 LineTo LineTo 或者Polyline PolyPolygon等函数绘制这个多边形(要是封闭的)。然后 EndPath();再 StrokeAndFillPath 或 FillPath 填充多边形。还或者PathToRegion 将路径转换为 CRgn 可以执行其他的位图操作

怎么用MFC编一个绘制多边形的程序啊
nCount 数组中的点的数目。其值不小于2。使用当前画笔绘制由直线连接的包含两个以上顶点的多边形。(有填充)pDC-> Polygon(LPPOINT lpPoints ,int nCount);参数: lpPoints 多边形顶点数组的指针。可以为该参数传递POINT结构或CPoint对象。nCount 数组中的顶点数目。

怎么样在mfc中画任意多边形,并且双击结束?可以有代码吗?谢谢!
思路:这个就是鼠标的事件,鼠标单击确定多边形的顶点,依照顶点次序两点之间化成直线,双击则结束画图。是鼠标单击事件 是鼠标双击事件。

MFC框架下GDI+绘图问题
没太看懂你的做法。但是,我不建议你依赖GDI的函数来直接求算交点和区域。通常的做法是:你自己依据数据和几何公式去计算交点,进而得到区域,然后用GDI来绘图。你应当把GDI的作用仅仅局限于在你的图形表现出来,不要对它有其他的期望。你可以参考一下计算机图形学和GIS(地理信息系统)方面的一些资料或...

MFC里的DC是什么意思?怎么使用DC?最好能举个例子说明一下?
当需要处理一个鼠标的单击,然后马上画出一个圆,你不能等到下一个WM_PAINT的消息到来才画图,而是马上,这是就需要CclientDC了。它可以在OnPaint的外面创建一个客户区域DC void CMainWindow::OnLButtonDown (UINT nFlags, CPoint point) { CRect rect; GetClientRect (&rect); CClientDC dc (this); dc.MoveTo ...

怎么用C++编写坐标
多边形的顶点数加一, 并且数组polypoints中第一个和最后一个点的坐标相同。void far bar(int x1, int y1, int x2, int y2);确定一个以(x1, y1)为左上角, (x2, y2)为右下角的矩形窗口, 再按规定图 模和颜色填充。说明: 此函数不画出边框, 所以填充色为边框。void far bar3d(int x1...

相似回答