资源简介
1.编译器VS2015,C++自绘漂亮柱状图
2.可用于数据汇总.
3.亲测可用
代码片段和文件信息
#include “stdafx.h“
#include “MyGraphs.h“
CMyGraphs::CMyGraphs()
{
}
CMyGraphs::~CMyGraphs()
{
}
BEGIN_MESSAGE_MAP(CMyGraphs CStatic)
ON_WM_ERASEBKGND()
ON_WM_PAINT()
END_MESSAGE_MAP()
BOOL CMyGraphs::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
return true;
//return CStatic::OnEraseBkgnd(pDC);
}
void CMyGraphs::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CStatic::OnPaint()
Graphics graphics(dc);
graphics.SetSmoothingMode(SmoothingModeAntiAlias);//消除锯齿
graphics.SetSmoothingMode(SmoothingModeHighQuality);//高质量
CRect m_rect;
GetClientRect(&m_rect);
m_rect.InflateRect(0 0 -2 -2);
Pen pen_bright(Color(255 250 250) 2);
Pen pen_gloomy(Color(210 210 210) 2);
Pen pen_grid(Color::SkyBlue 1);
Point pt_gloomy[3] = { Point(m_rect.rightm_rect.top)
Point(m_rect.leftm_rect.top)
Point(m_rect.leftm_rect.bottom)};
graphics.DrawLines(&pen_gloomy pt_gloomy 3);
Point pt_bright[3] = { Point(m_rect.rightm_rect.top)
Point(m_rect.rightm_rect.bottom)
Point(m_rect.leftm_rect.bottom) };
graphics.DrawLines(&pen_bright pt_bright 3);
for (int i = 1; i < 5; i++)
{
Point pt[2];
pt[0] = { m_rect.leftm_rect.top + m_rect.Height() *i/ 5 };
pt[1] = { m_rect.rightm_rect.top + m_rect.Height() *i/ 5 };
graphics.DrawLine(&pen_grid pt[0] pt[1]);//横线
pt[0] = { m_rect.left + m_rect.Width() *i/ 5 m_rect.top };
pt[1] = { m_rect.left + m_rect.Width() *i/ 5 m_rect.bottom };
graphics.DrawLine(&pen_grid pt[0] pt[1]);//竖线
}
//画柱状图
GraphicsPath graphPath[2];
SolidBrush brush_gra(Color::YellowGreen);
Rect rt[4]rct[4];
for (int j = 1; j < 5; j++)
{
rt[j - 1] = { m_rect.left + m_rect.Width() *j / 5 -12//第一组
m_rect.bottom-m_rect.Height()*j/10
12
m_rect.Height()*j / 10 };
rct[j - 1] = { m_rect.left + m_rect.Width() *j / 5 //第二组
m_rect.bottom - m_rect.Height()*j / 5
12
m_rect.Height()*j / 5 };
}
graphPath[0].AddRectangles(rt4);
graphics.FillPath(&brush_gra &graphPath[0]);
graphPath[1].AddRectangles(rct 4);
graphics.FillPath(&SolidBrush(Color::RoyalBlue) &graphPath[1]);
Point pt_line[6] = { Point(m_rect.leftm_rect.bottom)
Point(m_rect.left + m_rect.Width() * 1 / 5 m_rect.Height() * 4 / 5)
Point(m_rect.left + m_rect.Width() * 2 / 5 m_rect.Height() * 1 / 5)
Point(m_rect.left + m_rect.Width() * 3 / 5 m_rect.Height() * 3 / 5)
Point(m_rect.left + m_rect.Width() * 4 / 5 m_rect.Height() * 2 / 5)
Point(m_rect.left + m_rect.Width() * 5 / 5 m_rect.Height() * 3 / 5) };
graphics.DrawCurve(&Pen(Color::Red2) pt_line 6);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2956 2019-04-17 15:50 柱状图\MyGraphs.cpp
文件 209 2019-04-17 11:32 柱状图\MyGraphs.h
目录 0 2019-05-17 09:48 柱状图
----------- --------- ---------- ----- ----
3165 3
相关资源
- 自己写的元胞自动机NS模型
- 2048C++版本带图形界面
- CGridListCtrlEx源码vc++
- 使用C++的二叉搜索树实现学生成绩管
- 狼吃羊C++代码
- 语音识别系统源码
- libstdc++-3.4.6-9.i386_libstdc++-3.4.6-11.x86_
- C++ Builder DLL
- windows下c实现telnet代码
- 梯度下降求函数极值C++代码
- VC++ 串口调试助手源代码
- 基于QtQuick的QCustomPlot实现
- 04737 C++程序设计 精讲 串讲 笔记 音频
- 矩阵类的运算符重载
- vc++做的考试系统c/s模式
- KCF跟踪算法c++
- ftp的C++源码实现,可以进行文件传输
- c++实现计算器
- VC++ 向指定串口发送和接收数据可十六
- 数据结构课程设计CC++描述[阮宏一][程
- vc++FTP搜索工具()
- 基于VC++的图像修复源代码
- Google C++编码规范
- 简单电梯c++实现
- AES/ECB/PKCS5Padding C++实现
- c++商品管理
- 打印出有向图中的所有环C++
- cocos2dx 3.17 2048游戏的源码
- C++中缀表达式求值
- 一个数字水印的VC++源程序,支持图片
评论
共有 条评论