资源简介
一个3D效果可以实时变化的柱状图类。实现任意指定个数,随时删除或者增加,并自动计算柱状图位置及宽度,可以指定柱状图标题、颜色、高度等等
代码片段和文件信息
// Coordinates.cpp : implementation file
//
#include “stdafx.h“
#include “HistogramTest.h“
#include “Coordinates.h“
// CCoordinates
IMPLEMENT_DYNAMIC(CCoordinates CWnd)
CCoordinates::CCoordinates()
{
m_Min=0;
m_Max=300;
m_DivisionLable=40;//文字显示间隔
DivisionTick=20;
}
CCoordinates::~CCoordinates()
{
}
BEGIN_MESSAGE_MAP(CCoordinates CWnd)
// ON_WM_PAINT()
END_MESSAGE_MAP()
void
CCoordinates::Create(CDC* pDCCRect rect)
{
CPen cooPen;
CPen* old_cooPen;
//绘制XY轴和箭头
cooPen.CreatePen(PS_SOLID2DEFAULT_COLOR);
old_cooPen=pDC->Selectobject(&cooPen);
pDC->MoveTo(00);
pDC->LineTo(0rect.Height()-Origin_Y*2);
pDC->MoveTo(00);
pDC->LineTo(rect.Width()-Origin_X*20);
pDC->MoveTo(0rect.Height()-Origin_Y*2);
pDC->LineTo(-3rect.Height()-Origin_Y*2-10);
pDC->MoveTo(0rect.Height()-Origin_Y*2);
pDC->LineTo(3rect.Height()-Origin_Y*2-10);
pDC->Selectobject(old_cooPen);
cooPen.Deleteobject();
//绘制刻度线
for (int temp=DivisionTick;temp<(m_Max-m_Min);)
{
pDC->MoveTo(3temp);
pDC->LineTo(-5temp);
temp+=DivisionTick;
}
//绘制辅助线
CPen pen;
CPen* oldpen;
pen.CreatePen(PS_DOT1RGB(505050));
oldpen=pDC->Selectobject(&pen);
pDC->MoveTo(15DivisionTick/2);
pDC->LineTo(15m_Max-m_Min-10);
CRgn rgn;
CPoint ptVertex[4];
ptVertex[0].x=0;
ptVertex[0].y=0;
ptVertex[1].x=15;
ptVertex[1].y=DivisionTick/2;
ptVertex[2].x=rect.Width()-Origin_X*2;
ptVertex[2].y=DivisionTick/2;
ptVertex[3].x=rect.Width()-Origin_X*2;
ptVertex[3].y=0;
rgn.CreatePolygonRgn(ptVertex4ALTERNATE);
pDC->FillRgn(&rgn&CBrush(RGB(100100100)));
for (int temp=DivisionTick;temp<(m_Max-m_Min);)
{
pDC->MoveTo(0temp);
pDC->LineTo(15temp+DivisionTick/2);
pDC->MoveTo(15temp+DivisionTick/2);
pDC->LineTo(rect.Width()-Origin_X*2temp+DivisionTick/2);
temp+=DivisionTick;
}
pDC->Selectobject(oldpen);
//绘制显示标识文字
CFont font;
CFont* old_font;
font.CreatePointFont(65 “Arial“ pDC);
old_font=pDC->Selectobject(&font);
CString str;
for (int temp=0;temp<(m_Max-m_Min);)
{
str.Format(“%d“temp+m_Min);
pDC->DrawText(strCRect(-40temp+5-5temp-5)DT_RIGHT);
temp+=m_DivisionLable;
}
pDC->Selectobject(old_font);
pen.Deleteobject();
font.Deleteobject();
}
/**
* @fn SetRange
* @brief 设置Y轴显示范围
* @param[in] min 最小值
* @param[in] min 最大值
* @return 执行结果
*/
BOOL CCoordinates::SetRange(int min int max)
{
m_Min=min;
m_Max=max;
return TRUE;
}
/**
* @fn GetRange
* @brief 获取Y轴显示范围
* @param[out] min 最小值
* @param[out] min 最大值
* @return 执行结果
*/
BOOL CCoordinates::GetRange(int& min int& max)
{
min=m_Min;
max=m_Max;
return TRUE;
}
/**
* @fn SetDivisionsPerLabel
* @brief 设置标Y轴标签的显示间隔(多少值一个标签)
* @param[in] value 最小值
* @return 执行结果
*/
BOOL CCoordinates::SetDivisionsPerLabel(int value)
{
m_Div
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 904 2009-10-09 13:53 HistogramTest(3D)\HistogramTest\HistogramTest.sln
..A..H. 28672 2009-10-21 15:01 HistogramTest(3D)\HistogramTest\HistogramTest.suo
文件 3686 2009-10-06 21:41 HistogramTest(3D)\HistogramTest\HistogramTest\Coordinates.cpp
文件 641 2009-10-06 21:41 HistogramTest(3D)\HistogramTest\HistogramTest\Coordinates.h
文件 7532 2009-10-09 10:58 HistogramTest(3D)\HistogramTest\HistogramTest\Debug\BuildLog.htm
文件 3087 2009-10-06 23:04 HistogramTest(3D)\HistogramTest\HistogramTest\Histogram.cpp
文件 473 2009-10-06 21:44 HistogramTest(3D)\HistogramTest\HistogramTest\Histogram.h
文件 1807 2009-10-03 21:35 HistogramTest(3D)\HistogramTest\HistogramTest\HistogramTest.cpp
文件 688 2009-10-06 22:55 HistogramTest(3D)\HistogramTest\HistogramTest\HistogramTest.h
文件 5951 2009-10-09 09:03 HistogramTest(3D)\HistogramTest\HistogramTest\HistogramTest.vcproj
文件 1423 2009-10-21 15:01 HistogramTest(3D)\HistogramTest\HistogramTest\HistogramTest.vcproj.20090921-1544.Administrator.user
文件 1427 2009-10-06 23:17 HistogramTest(3D)\HistogramTest\HistogramTest\HistogramTest.vcproj.7EF026834E43418.Administrator.user
文件 2026 2009-10-06 12:13 HistogramTest(3D)\HistogramTest\HistogramTest\HistosContainer.h
文件 2999 2009-09-29 10:19 HistogramTest(3D)\HistogramTest\HistogramTest\ReadMe.txt
文件 21630 2005-09-23 09:25 HistogramTest(3D)\HistogramTest\HistogramTest\res\HistogramTest.ico
文件 369 2009-09-29 10:19 HistogramTest(3D)\HistogramTest\HistogramTest\res\HistogramTest.rc2
文件 144 2009-09-29 10:19 HistogramTest(3D)\HistogramTest\HistogramTest\stdafx.cpp
文件 2489 2009-09-29 10:19 HistogramTest(3D)\HistogramTest\HistogramTest\stdafx.h
文件 9790 2009-10-21 15:01 HistogramTest(3D)\HistogramTest\HistogramTest\Release\BuildLog.htm
文件 877 2009-10-09 10:52 HistogramTest(3D)\HistogramTest\HistogramTest\HistogramTestDlg.h
文件 915 2009-10-09 10:52 HistogramTest(3D)\HistogramTest\HistogramTest\resource.h
文件 4872 2009-10-09 10:57 HistogramTest(3D)\HistogramTest\HistogramTest\HistogramTestDlg.cpp
文件 58952 2009-10-09 10:57 HistogramTest(3D)\HistogramTest\HistogramTest\HistogramTest.aps
文件 5316 2009-10-09 10:57 HistogramTest(3D)\HistogramTest\HistogramTest\HistogramTest.rc
文件 9234 2009-10-09 10:58 HistogramTest(3D)\HistogramTest\HistogramTest\HistosContainer.cpp
文件 1822920 2009-10-09 10:58 HistogramTest(3D)\HistogramTest\debug\HistogramTest.ilk
目录 0 2009-10-06 23:04 HistogramTest(3D)\HistogramTest\HistogramTest\Debug
目录 0 2009-10-02 22:26 HistogramTest(3D)\HistogramTest\HistogramTest\res
目录 0 2009-10-09 09:03 HistogramTest(3D)\HistogramTest\HistogramTest\Release
目录 0 2009-10-09 09:04 HistogramTest(3D)\HistogramTest\release
............此处省略7个文件信息
相关资源
- 基于51单片机的DDS函数信号发生器的设
- pthread+多线程编程技术.pdf
- linux网络编程课程设计
- vscode编程最好看的字体-MONACO
- SM9541压力传感器编程指南
- swing+servlet网络编程
- VC编程实现使用WinInet通过HTTP协议读取
- QT的多线程编程
- 消息封/解装仿真
- PageRank算法 北邮计算机应用编程实验
- cuda编程 merge sort
- 神经网络和深度学习—吴恩达 第三周
- Linux+shell编程课程设计——Linux用户管
- 编程常用英文单词汇总
- 步进电机程序和仿真
- ug编程 ug-fanuc-4轴后处理
- 一个计算万年历的简单程序新思想
- 利用winsock编程来实现FTP协议客户端
- OpenGL三维图形系统开发与实用技术 基
- 1.8编程基础之多维数组(25题)
- 电子琴汇编程序.
- 计算机网络高级软件编程技术第3章
- DELPHI数据库编程
- 人工智能实验报告2份 Prolog语言编程练
- PCL做界面程序代码
- 大地测量主要计算编程
- 使用socket编程模拟滑动窗口协议
- labview 和VC混合编程
- 麻省理工学院公开课:计算机科学及
- socket编程 TCP文件的传输实现 客户端和
评论
共有 条评论