本文主要是介绍[MFC] 画笔、画刷的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
流程:
a)定义画家(OnPaint()函数中实现)
b)定义画笔(CPen)、画刷(CBrush )–填充封闭图形,包括样式、颜色等。
c)将画笔、画刷交给画家使用----CDC::SelectObject
实现:在OnPain()函数中加入
CPaintDC dc(GetDlgItem(IDC_STATIC3)); //用此句,得到picture控件的DC,图像将被绘制在控件上//画笔---CPen//画线//PS_SOLID:虚线,只有当画笔为1或者更小时才有效//10:线宽CPen pen(PS_SOLID,1,RGB(255,0,0));dc.SelectObject(&pen);dc.MoveTo(0,0);dc.LineTo(200,200);//画刷---CBrush//画圆dc.Ellipse(20,20,120,120);//直径为100//填充CBrush brush(RGB(255,0,0));dc.SelectObject(&brush);dc.Ellipse(20,20,120,120);
绘制位置的选择有三种,任选一种:
1)CPaintDC dc(this); //若用此句,得到的是对话框的DC,图片将被绘制在对话框上.
2) CPaintDC dc(GetDlgItem(IDC_STATIC1)); //用此句,得到picture控件的DC,图像将被绘制在控件上
3)CDC dc;
dc.m_hDC=::GetDC(NULL); //若用此两句,得到的是屏幕的DC,图片将被绘制在屏幕上
CPen类型函数pen()第一个参数是线型,有如下线型:
注意: 不要将实现代码放在if (IsIconic())语句下,因为IsIconic()作用是判断窗口是否处于最小化状态(点击了最小化按钮之后),一般将窗口最小化之后,才会执行里面的语句。
结果:
/******************************************************************************************************/
上面说的是在控件上进行绘图,那么在图片上如何进行操作呢?
很简单,为你图片所在的控件添加一个变量,比如m_pic,然后在OnPaint()中加入
//实现图片打开功能的函数
OnBnClickedButton2();
//例:在图片上画一个圆
CDC *pDC = m_pic.GetWindowDC();
CPen pen(PS_SOLID,6,RGB(255,0,0));
pDC->SelectObject(&pen);
pDC->Ellipse(100,100,101,101);
效果:
更多画线方式参考:https://www.cnblogs.com/mxbs/p/6216464.html
这篇关于[MFC] 画笔、画刷的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!