1.了解常用的GDI函数绘图.
2.使用常用的画笔画刷.
上方则为我们常用的GDI函数了. 画线 矩形. 以及圆 等等.
void CCDCDlg::OnBnClickedButton1()
{
CClientDC dc(this);
POINT po;
po.x = 30;
po.y = 30;
dc.MoveTo(10, 10); //移动起点到10 10 位置
dc.LineTo(po); //画线
dc.LineTo(po);
}
截图:
PolyLine这个函数.则是给一个数组. 这个数组里面保存着x y坐标. 然后它会遍历数组.以你给定的点来画线.
起始的两个坐标属于在哪里开始画.就是指定的起点.
比如使用它画一个矩形.
代码:
void CCDCDlg::OnBnClickedButton1()
{
CClientDC dc(this);
POINT po[5] = { 40,40,100,40,100,100,40,100,40,40 }; //给定坐标
dc.Polyline(po, 5);//给数组.以及数组大小.
}
截图:
PolyLineTo 这个跟上面一样.上面的数组起始的两个成员是指明了起始位置.所以需要五个坐标.这一个直接使用MoveTo指定.数组里面直接填写坐标即可.
void CCDCDlg::OnBnClickedButton1()
{
CClientDC dc(this);
POINT po[4] = {100,40,100,100,40,100,40,40 }; //给定坐标
POINT ps;
ps.x = 40;
ps.y = 40;
dc.MoveTo(ps);
dc.PolylineTo(po, 4);//给数组.以及数组大小.
}
效果
void CCDCDlg::OnBnClickedButton1()
{
CClientDC dc(this);
dc.Ellipse(CRect(10, 130, 110, 160)); //给定坐标即可.
}
截图:
void CCDCDlg::OnBnClickedButton1()
{
CClientDC dc(this);
dc.Rectangle(CRect(10, 130, 110, 160));
}
使用系统默认画刷.填充矩形.
void CCDCDlg::OnBnClickedButton1()
{
CClientDC dc(this);
CBrush brush;
CRect rect(10, 130, 110, 160);
brush.CreateStockObject(LTGRAY_BRUSH);
dc.Rectangle(&rect);
dc.FillRect(&rect, &brush); //填充矩形.使用默认
}
其实3D立体就是使用两个RGB颜色来互相对应 一个代表的是上方的颜色.一个是下方的颜色
具体看代码吧.这里以矩形为例子.
void CCDCDlg::OnBnClickedButton1()
{
CClientDC dc(this);
CBrush brush;
CRect rect(10, 130, 110, 160);
brush.CreateStockObject(LTGRAY_BRUSH);
dc.Rectangle(&rect);
dc.FillRect(&rect, &brush); //填充矩形.使用默认
dc.Draw3dRect(&rect, RGB(255, 0, 0), RGB(128, 128, 128));
}
可以看到.上方颜色是红色.下方跟下方右边是灰色.
这个可以使用我们的类 CRect 里面有一个函数叫做.PtInRect(POINT)
POINT po;
po.x = 10;
po.y = 130;
if (CRect(10, 130, 110, 160).PtInRect(po))
{
AfxMessageBox(TEXT("Yes"));
}
else
{
AfxMessageBox(TEXT("No"));
}
在GDI中.我们有画笔.以及画刷. 比如上面我们使用了画刷来填充矩形.那么画矩形的线也是可以更改的.
CPen类. 根 CBrush类. 当然也有自己 CFront. 简单讲解一个.
我们要使用画笔.就要使用 SelectObject来使用才可以使用.
比如下方代码: PS: Brush一样.只不过设置背景都有专门的函数.可以查询MSDN
void CCDCDlg::OnBnClickedButton1()
{
CClientDC dc(this);
CBrush brush;
CPen pen(PS_SOLID, 1, RGB(255, 0, 0));//创建画笔.
CPen *oldPen = dc.SelectObject(&pen); //选择画笔.
CRect rect(10, 130, 110, 160);
dc.Rectangle(&rect);
dc.SelectObject(oldPen);//还原画笔.
}
截图:
关于字体. 背景颜色. 查询MSDN即可.
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有