用c++ MFC 制作一个绘图软件!怎么填充图形 可以的话各位上代码!下面是我写的代码.只能全频填充,求指导

if(m_nDrawType==ID_DRAW_FILL)
{
CBrush* pOldBrush;
CBitmap* pOldBitmap;
CBrush brush;
brush.CreateSolidBrush(m_cFillColor);
pOldBrush=m_pMemDC->SelectObject(&brush);
pOldBitmap=m_pMemDC->SelectObject(m_pBitmap);
m_pMemDC->ExtFloodFill(point.x,point.y,m_pMemDC->GetPixel(point),FLOODFILLSURFACE);
Invalidate(FALSE);
m_pMemDC->SelectObject(pOldBrush);
m_pMemDC->SelectObject(pOldBitmap);
m_bDrawing=FALSE;
}

CBrush* pOldBrush;
CBrush brush;
brush.CreateSolidBrush(m_cFillColor);//这个时候,刷子已经选好了,想填充什么图形,画就可以了
m_pMemDC->Rectangle(rect);//画一个矩形填充
m_pMemDC->SelectObject(pOldBrush);追问

还是不对!给我说下你的邮箱...我把源码给你发过来你帮我看看好吗?帮帮忙了

追答

后面位图的代码注销掉再看
问题是,我不清楚你要填充一个什么。如果只是普通形状,不难,你可以自己多试试。
不明白可以百度hi我

追问

就是填充已经画好的矩形或者椭圆...我是新学的!程序有很多问题.....你就帮我看看呗
这是按照你说的修改...编译时的错误
:\Users\Administrator\Desktop\huitu3\huituView.cpp(379) : error C2065: 'rect' : undeclared identifier

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-26
Invalidate(FALSE);这句不要,
在绘图函数中,不能有这个,它会导致系统的重新绘制窗口
你的代码本身没什么问题
填充方式由FLOODFILLSURFACE和具体图像决定

C++ MFC 如何画一个有透明填充色的矩形,求代码
关键代码如下:CClientDC dc(this);dc.SelectStockObject(NULL_BRUSH);dc.Rectangle(0,0,300,200);只需要在画出矩形之前,把NULL_BRUSH这个自带的预定义画笔选入设备描述表(dc)即可。

MFC中如何填充一个椭圆,要代码,谢谢
如果你在View或其他窗口的类中,可以用如下代码:CDC* pDC = GetDC(); \/\/ 得到DC CBrush brush(RGB(x,x,x));\/\/根据自己需要填充颜色 CBrush *oldbrush;oldbrush = pDC->SelectObject(&brush);\/\/选新的画刷 pDC->Ellispe(x1,y1,x2,y2);pDC->SelectObject(oldbrush);\/\/将原来的画刷...

急:mfc编程,用C++写一个简易的计算器,有图形界面的..请求各位大虾给出详...
1.新建一个对话框程序。2.添加计算器的各个按键及编辑框(用来显示输入和结果)3.为对话框添加一些变量:一个状态标志(计算加减乘除),一个标志(对运算两个数的哪个进行处理),两个double变量(用于运算的两个数),用类向导为编辑框绑定一个变量。定义一个计算函数(进行加减乘除)4.在对话框.h头文件中...

C++应用程序中,画图程序 创建画笔的代码 急~~
\/\/第三种,用CClient类绘图,使用CPen类构造画笔,跟第二种方法不同的是用CClientDC时不用手动去获取DC,和释放DC CClientDC aDC(this); \/\/CClientDC的构造函数需要一个参数,这个参数是指向绘图窗口的指针,我们用this指针就可以了 CPen pen(PS_SOLID,1,m_Color); \/\/\/建立一个画笔类对象,构造时设置画笔属性 aDC....

我用MFC制作一个界面 请问添加什么代码可以让按纽看起来更好看,或者华 ...
在按钮属性中的styles里选中owner draw,然后为这个按钮关联变量(假设为m_btn),category里选control,类型中只有一个CButton可选。再去定义处把CButton改为CBitmapButton,就可以用m_btn.LoadBitmaps(IDB_B1,IDB_B2);\/\/这是两个位图的ID,用一个也行,区别试一下就知道了。

如何在c++ mfc的基于对话框中画填充矩形
CDC.FillRect 这样的形式才是标准的MFC方式,即使用CDC对象来画图。。。 如果你用了API就不能用 C开头的对象,因为API不是MFC框架内容,它是GDI的函数,必须用句柄做参数。。。 这个一定要搞清楚。。。还有 MFC基于的图形库GDI已经是个老掉牙过时的图形框架,用不着深究, MFC是可以用GDI+。。

c++ Mfc中绘制一个红色的矩形,求解答
说明:此段代码是在MFC的VIEW类中的, OnPaint是消息函数,每次刷新窗口都会调用这个函数,在OnPaint中调用OnDraw函数来进行要求画的东西。Ondraw中前半段画的是填充红色的矩形,后半段中画的是线框是红色矩形,程序已调试通,可以直接使用。void CMyTestView::OnDraw(CDC* pDC){ CMyTestDoc* pDoc ...

C++ mfc 想做一个两点确定一条直线的程序,然后在坐标轴上显示出来,求高...
需要画图,不过也不难,知道两点坐标,然后直接画线连接着两点即可,在这之前可以先把数据轴画好,

用mfc画一个圆的完整代码 要求圆里面填充为蓝色
用MFC向导创建一个名称为Yuan的对话框工程. 并添加对话框类CYuanDlg的OnPaint函数的画圆功能.void CYuanDlg::OnPaint(){ if (IsIconic()){ CPaintDC dc(this); \/\/ device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);\/\/ Center icon in client ...

C++,MFC如何添加类
实际上在CView与FrameView上绘图区别不大,只是绘图时用this指针时要注意范围,一个不包含工具栏,一个包含工具栏。它们的基类都是CWnd,也就是说它们都有处理默认窗口消息的过程函数,如果你用CClientDC的话,两者没什么区别,当然如果用this指针的话会有范围上的区别。因此在一般都在CView中增加消息响应...

相似回答