有些事说出来显得我不大度,但我确实不开心,如果你不懂我,那错的都是我。。。
---- 网易云热评
一、新建MFC应用程序

二、在菜单栏新加画图项

三、类向导添加绘图命令,项目---类向导

四、显示aiyou代码
void CMFC绘图View::OnHuahua(){//创建对象,在视图对象里画CClientDC dc(this);dc.TextOutA(100, 100, "aiyou");//::TextOut(dc.m_hDC, 100, 100, "hello client", strlen("aiyou"));}
讯享网
五、运行结果

六、添加绘图消息


七、画一个矩形
讯享网void CMFC绘图View::OnPaint(){CPaintDC dc(this); // device context for painting// TODO: 在此处添加消息处理程序代码// 不为绘图消息调用 CView::OnPaint()dc.Rectangle(100, 100, 300, 300);//::Rectangle( dc.m_hDC, 100, 100, 300, 300 );}

注意:最小化窗口,发现绘图消息还保留,aiyou不见了,需要重新点击生成
八、CGDIObject类讲解
1、新建菜单项,画笔、画刷、字体、位图、复合图

2、类向导添加相关的命令

3、代码如下:
void CMFC绘图View::OnHuabi(){CClientDC dc(this);//创建画笔10像素,红色CPen pen(PS_SOLID, 10, RGB(255, 0, 0));/*CPen* oldpen = dc.SelectObject(&pen);dc.Ellipse(100, 100, 200, 200);//销毁画笔dc.SelectObject(oldpen);pen.DeleteObject();*/HGDIOBJ nOldPen = ::SelectObject(dc.m_hDC, pen.m_hObject);::Ellipse(dc.m_hDC, 100, 100, 200, 200);::SelectObject(dc.m_hDC, nOldPen);::DeleteObject(pen.m_hObject);}void CMFC绘图View::OnHuashau(){CClientDC dc(this);CBrush brush(RGB(0, 255, 0));CBrush* oldbrush = dc.SelectObject(&brush);dc.Ellipse(100, 100, 300, 300);dc.SelectObject(oldbrush);brush.DeleteObject();}void CMFC绘图View::OnZiti(){CClientDC dc(this);CFont font;font.CreatePointFont(100, "宋体");CFont* oldfont = dc.SelectObject(&font);dc.TextOut(200, 100, "哎呦");dc.SelectObject(oldfont);font.DeleteObject();}
4、从资源里添加位图
首先创建一个位图

讯享网void CMFC绘图View::OnWeitu(){CClientDC dc(this);//添加资源CBitmap bmp;bmp.LoadBitmap(IDB_BITMAP1);CDC memdc;memdc.CreateCompatibleDC(&dc);CBitmap* oldbmp = memdc.SelectObject(&bmp);dc.BitBlt(200, 200, 48, 48, &memdc, 0, 0, SRCCOPY);memdc.SelectObject(oldbmp);bmp.DeleteObject();memdc.DeleteDC();}
5、复合图实现
void CMFC绘图View::OnFht(){CClientDC dc(this);CRgn rgn1, rgn2;rgn1.CreateEllipticRgn(100, 100, 300, 300);rgn2.CreateEllipticRgn(200, 200, 500, 500);//将基本图形进行或运算rgn1.CombineRgn(&rgn1, &rgn2, RGN_OR);//给复合图形填充颜色CBrush brush2(RGB(0, 255, 0));dc.FillRgn(&rgn1, &brush2);//给复合图形描绘线条CBrush brush(RGB(255, 0, 0));dc.FrameRgn(&rgn1, &brush, 10, 1);}

欢迎关注公众号:顺便编点程



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/128595.html