picture.cpp
来源:互联网 发布:淘宝卖家客服在哪里找 编辑:程序博客网 时间:2024/06/06 07:27
// Picture.cpp : implementation file
//
#include "stdafx.h"
#include "MyApp.h"
#include "Picture.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// Picture dialog
int paint_data[1000]; //保存数据
int counter_paint; //计数
int value_max;
int value_min;
Picture::Picture(CWnd* pParent /*=NULL*/)
: CDialog(Picture::IDD, pParent)
{
//{{AFX_DATA_INIT(Picture)
m_id = 0;
m_num = 1;
m_value = 1;
//}}AFX_DATA_INIT
}
void Picture::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(Picture)
DDX_Text(pDX, IDC_EDIT_ID, m_id);
DDX_Text(pDX, IDC_EDIT_NUM, m_num);
DDV_MinMaxInt(pDX, m_num, 1, 1000);
DDX_Text(pDX, IDC_EDIT_VALUE, m_value);
DDV_MinMaxInt(pDX, m_value, 1, 5);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(Picture, CDialog)
//{{AFX_MSG_MAP(Picture)
ON_WM_PAINT()
ON_BN_CLICKED(ID_PAINT_PIC, OnPaintPic)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Picture message handlers
void Picture::OnPaint()
{
CPaintDC dc(this);
int i;
// TODO: Add your message handler code here
CString zuobiao_str;
zuobiao_str.Format("节点%d的记录找到%d条",m_id,counter_paint);
GetDlgItem(IDC_STATIC_SET)->SetWindowText(zuobiao_str);
dc.Rectangle(35,30,630,375);
//画坐标轴
CPen* pPenBlack = new CPen; //创建画笔对象
pPenBlack->CreatePen(PS_SOLID, 1, RGB(0,0,0));
dc.SelectObject(pPenBlack);
dc.MoveTo(80,40);
dc.LineTo(80,350);
dc.LineTo(590,350);
dc.MoveTo(75,50);
dc.LineTo(80,40);
dc.LineTo(85,50);
dc.MoveTo(580,345);
dc.LineTo(590,350);
dc.LineTo(580,355);
zuobiao_str.Format("时间(*%d)",counter_paint/100+1);
dc.TextOut(550,320,zuobiao_str);
zuobiao_str.Format("数值(*%d)",value_max/100+1);
dc.TextOut(90,40,zuobiao_str);
dc.TextOut(65,350,"0");
int nx = 10;
int ny = 10;
for(i=1;i<nx+1;i++)
{
zuobiao_str.Format("%d",i*10);
dc.MoveTo(80+i*500/nx,345);
dc.LineTo(80+i*500/nx,350);
dc.TextOut(80+i*500/nx,355,zuobiao_str);
}
for(i =1;i<ny+1;i++)
{
zuobiao_str.Format("%d",i*10);
dc.MoveTo(80,350-i*300/ny);
dc.LineTo(85,350-i*300/ny);
dc.TextOut(50,350-i*300/ny,zuobiao_str);
}
CPen* pPenRed = new CPen; //创建画笔对象
pPenRed->CreatePen(PS_SOLID, 1, RGB(255,0,0));
dc.SelectObject(pPenRed);
float datay1,datay2,datax1,datax2;
for(i = counter_paint - 1;i > 0;i--)
{
datay1 = (float)paint_data[i]*3/(value_max/100+1);
datay2 = (float)paint_data[i-1]*3/(value_max/100+1);
datax1 = (float)(counter_paint-1-i)*5/(counter_paint/100+1);
datax2 = (float)(counter_paint-i)*5/(counter_paint/100+1);
dc.MoveTo(80+(int)datax1,350-(int)datay1);
dc.LineTo(80+(int)datax2,350-(int)datay2);
}
zuobiao_str.Format("节点%d读数随时间变化的曲线",m_id);
dc.TextOut(250,50,zuobiao_str);
// Do not call CDialog::OnPaint() for painting messages
}
void Picture::OnPaintPic()
{
// TODO: Add your control notification handler code here
UpdateData();
CString str;
int i;
int temp = 0;
counter_paint = 0;
value_max = 0;
value_min = 0;
while(pSet.IsOpen());
pSet.Open();
pSet.MoveLast();
while(counter_paint <m_num)
{
if(counter_paint == 0 && pSet.IsBOF())
{
str.Format("没有节点%d数据!",m_id);
GetDlgItem(IDC_STATIC_SET)->SetWindowText(str);
break;
}
if(counter_paint < m_num && pSet.IsBOF())
break;
if(pSet.m_ID == m_id)
{
if(m_value == 1)
paint_data[counter_paint++] = pSet.m_VALUE1;
if(m_value == 2)
paint_data[counter_paint++] = pSet.m_VALUE2;
if(m_value == 3)
paint_data[counter_paint++] = pSet.m_VALUE3;
if(m_value == 4)
paint_data[counter_paint++] = pSet.m_VALUE4;
if(m_value == 5)
paint_data[counter_paint++] = pSet.m_VALUE5;
}
pSet.MovePrev();
}
pSet.Close();
if(counter_paint != 0)
value_max = value_min = paint_data[0];
for(i = 1;i < counter_paint;i++)
{
if(paint_data[i] > value_max)
value_max = paint_data[i];
if(paint_data[i] < value_min)
value_min = paint_data[i];
}
GetDlgItem(IDC_STATIC_SET)->SetWindowText("请刷新视图……");
}
- picture.cpp
- picture
- picture
- picture
- Picture
- picture
- picture
- Picture
- picture
- Picture
- Picture
- picture
- 【Picture】
- Picture
- picture
- cpp
- CPP
- CPP
- mypos.h
- mytab.cpp
- mytab.h
- VMware "VMnet0 is not running"错误的解决方法
- 猴子问题
- picture.cpp
- Oracle10
- mypicture.h
- receivedataset.cpp
- receivedataset.h
- C++开发小技巧之笔记
- relationset.cpp
- java 编译中的问题
- relationset.h