资源简介
一个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个文件信息
相关资源
- Scratch 吃豆人追踪者.sb3
- labview编程软件滤波器以及编写程序设
- Scratch 变脸(将人物图片变成各种各样
- UNIX/LINUX编程实践教程的源码
- 基于MFC扩展CListCtrl子项显示图片并叠
- Windows异步套接字网络编程
- 黑白棋(带简单AI)
- 编程实现二维DCT变换
- MT4编程 EA模板
- 音乐代码转换软件 单片机编程时用
- PLC上位机编程软件
- 一种红外遥控编解码仿真
- 用Socket编程实现FTP
- MFC程序-碰撞的小球
-
Cme
taFileDC的使用示例 - S7-200模拟量编程实例
- ado数据库MFC图书管理系统vs2010
- mfc单文档窗体画线与写字
- [免费]MFC制作目录树
- 防火墙编程-Visual C 网络通信开发
- 数据采集系统——ADC0808的应用,单片
- MFC读三维模型obj文件
- 画图程序MFC/VC/VC CRectTracker 串行化
- MFC网络编程实例
- VC 游戏编程—附源代码
- IpHlpApi.h&IpHlpApi.lib
- c 程序判断离散数学中命题公式
- ADC0809数字电压表 LCD1602显示 汇编程序
- MFC控件动态拖动
- MFC中OpenGL面和体的绘制以及动画效果
评论
共有 条评论