注册 登录
编程论坛 C++教室

MFC多边形填充问题

莫风 发布于 2016-04-25 23:22, 4352 次点击
void COnDrawView::OnFill1()
{
    // TODO: Add your command handler code here
    int color;
    int x,y;
    int Optcolor=RGB(200,200,0);//多边形的颜色
    int newcolor=RGB(0,200,200);//填充区域的颜色
    int ox[100],oy[100];
    CClientDC dc(this);//获取客户区设备描述表
    CBrush cbrush;
    cbrush.CreateSolidBrush(newcolor);
    for(x=0;x<100;x++){
        int i=0;
        for(y=0;y<100;y++){
            color=dc.GetPixel(x*10,y*10); //获取某一点的颜色
            if(color==Optcolor){  //比较某点与多边形的颜色
                //dc.SetPixel(x*10,y*10,newcolor);
                ox[i]=x;
                oy[i]=y;
                i++;
            }
        }
        do{
            dc.SelectObject(&cbrush);
            dc.Ellipse((int)(ox[i])*10,(int)(oy[i-2])*10,int(ox[i]+1)*10,int(oy[i-2]+1)*10);
            oy[i-2]++;
        }
        while(oy[i-2]==oy[1]);

    }
}
我自己想的一个填充方法,这段代码加进去之后程序就崩了,求助!!!

[此贴子已经被作者于2016-4-26 10:40编辑过]

4 回复
#2
rjsp2016-04-26 08:33
又是一个连问题都不会问的,起码你得描述一下你想实现什么功能
cbrush.CreateSolidBrush(newcolor); 不停的在循环中创建,移到定义处吧
其它的逻辑错误就没法改了,因为乱七八糟不知所云
#3
莫风2016-04-26 10:29
回复 2楼 rjsp
谢谢,麻烦大神了
#4
莫风2016-04-26 10:33
回复 2楼 rjsp
想实现在一个多边形里进行填充
#5
rjsp2016-04-26 13:05
以下是引用莫风在2016-4-26 10:33:51的发言:

想实现在一个多边形里进行填充
要说别人能听懂的话
1