MFC Static控件派生类,实现对函数图像的绘制。

本文介绍如何在MFC应用中创建Static控件的派生类,用于绘制函数图形。通过位图操作,实现了在控件上动态显示函数图像的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

功能设计:

实现画出函数图像(散点图,连线很简单,有最多8个图例),同时可以将图表保存下来。

头文件

/*********************************************************************************
*FileName:  GraphControl
*Author: FMX
*Version:  1.0
*Date:  2014-8-22
*Description: 
*Others:  //其他内容说明
*Function List: 
	void drawBK();	//绘制背景和坐标系
	void setGraphTitle(CString str);	//设置图表文件的标题
	void addLine(CString str);	//添加曲线的图例
	void addLine(CString* arr, int n);	//一次添加多个图例,最大图例数量为8
	void setRange(int ixl, int ixr, int iyl, int iyt);	//设定逻辑坐标的范围
	void addLineData(std::vector<CPoint> arr);	//输入绘制点的逻辑数据
	void transPos(CPoint *point, bool bIn);	//逻辑坐标,物理坐标转换
	void add(CString legName, std::vector<CPoint> line);//该方法可以添加完一个线条
	void getBitmap();	//获取可以保存的位图文件
*History:  //修改历史记录列表,每条修改记录应包含修改日期、修改者及修改内容简介
1.Date:
Author:
Modification:
2.…………
**********************************************************************************/
#pragma once

#include <vector>


// CGraphControl

class CGraphControl : public CStatic
{
	DECLARE_DYNAMIC(CGraphControl)

public:
	CGraphControl();
	virtual ~CGraphControl();

	添加的方法
	/绘图所使用的方法
	void drawBK();	//绘制背景和坐标系
	void setGraphTitle(CString str);	//
	void addLine(CString str);	//添加曲线的图例
	void addLine(CString* arr, int n);	//一次添加多个图例,最大图例数量为8
	void setRange(int ixl, int ixr, int iyl, int iyt);	//设定逻辑坐标的值
	void addLineData(std::vector<CPoint> arr);	//输入绘制点的逻辑数据
	void transPos(CPoint *point, bool bIn);	//逻辑坐标,物理坐标转换
	void transPos(std::vector<CPoint> *arr, bool bIn);//批量转换坐标
	void add(CString legName, std::vector<CPoint> line);//对于添加线条,整理逻辑,一个方法即可完成一次对线条的添加
	void getBitmap();	//获取可以保存的位图文件
private:
	CRect m_rect;	//控件的大小

	int marginL, marginR, marginT, marginB, marginInter;	//分别对应于图和空间边缘的距离,最后的一个变量指的是图表的主体和图例区域间的距离。

	int xl, xr, yb, yt;	//坐标范围,从X轴
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值