📄 bk_ground.cpp
字号:
// BK_Ground.cpp: implementation of the CBK_Ground class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "BK_Ground.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
/*
void CBK_Ground::CBK_Ground()
{
::Init_BK();
}
*/
/*
void CBK_Ground::~CBK_Ground()
{
}
*/
void CBK_Ground::Draw_BK(CDC *cdc)
{
int x;
CRect rc(StartX,StartY,H_Size+StartX,V_Size+StartY);
MemDC.CreateCompatibleDC(NULL);
MemBitmap.CreateCompatibleBitmap(cdc,H_Size,V_Size);
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
MemDC.InvertRect(rc);
//MemDC.FillSolidRect(StartX,StartY,H_Size+StartX,V_Size+StartY,BK_Color);
MemDC.FillSolidRect(0,0,H_Size,V_Size,BK_Color);
//绘制坐标轴线,虚线
hp=CreatePen(PS_DASH,0,Line_Color);
MemDC.SelectObject(hp);
for(x=1;x<H_Grid_Count+1;x++)
{
MemDC.MoveTo(x*H_Size/H_Grid_Count,0);
MemDC.LineTo(x*H_Size/H_Grid_Count,V_Size);
}
for(x=1;x<V_Grid_Count+1;x++)
{
MemDC.MoveTo(0,x*V_Size/V_Grid_Count);
MemDC.LineTo(H_Size,x*V_Size/V_Grid_Count);
}
//显示比例
/*
CString str;
if(V_Scale_List[V_Scale]>999)
str.Format(_T("%d V"),V_Scale_List[V_Scale]/1000);
else
str.Format(_T("%d mV"),V_Scale_List[V_Scale]);
str=str+" 1s";
MemDC.ExtTextOut(0,0,ETO_CLIPPED,rc,str,NULL);
*/
//双缓冲的拷备
cdc->BitBlt(StartX,StartY,H_Size+StartX,V_Size+StartY,&MemDC,0,0,SRCCOPY);
//cdc->BitBlt(0,0,H_Size,V_Size,&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(pOldBit);
//释放资源
MemBitmap.DeleteObject();
DeleteObject(hp);
MemDC.DeleteDC();
}
void CBK_Ground::Single_Full()
{
}
void CBK_Ground::Init_BK()
{
BK_Color=RGB(0,0,0); //背景黑色
Line_Color=RGB(0xff,0x000,0x00); //坐标红色
}
void CBK_Ground::DrawSingle(CDC *cdc)
{
int x;
CRect rc(StartX,StartY,H_Size+StartX,V_Size+StartY);
MemDC.CreateCompatibleDC(NULL);
MemBitmap.CreateCompatibleBitmap(cdc,H_Size,V_Size);
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
MemDC.InvertRect(rc);
//MemDC.FillSolidRect(StartX,StartY,H_Size+StartX,V_Size+StartY,BK_Color);
MemDC.FillSolidRect(0,0,H_Size,V_Size,BK_Color);
//绘制坐标轴线,虚线
hp=CreatePen(PS_DASH,0,Line_Color);
MemDC.SelectObject(hp);
for(x=1;x<H_Grid_Count+1;x++)
{
MemDC.MoveTo(x*H_Size/H_Grid_Count,0);
MemDC.LineTo(x*H_Size/H_Grid_Count,V_Size);
}
for(x=1;x<V_Grid_Count+1;x++)
{
MemDC.MoveTo(0,x*V_Size/V_Grid_Count);
MemDC.LineTo(H_Size,x*V_Size/V_Grid_Count);
}
//显示比例
/*
CString str;
if(V_Scale_List[V_Scale]>999)
str.Format(_T("%d V"),V_Scale_List[V_Scale]/1000);
else
str.Format(_T("%d mV"),V_Scale_List[V_Scale]);
str=str+" 1s";
MemDC.ExtTextOut(0,0,ETO_CLIPPED,rc,str,NULL);
*/
//画信号线
//画信号线,所有的都画一遍
for(int i=0;i<8;i++)//八路通道
{ //判断的条件为:小于8;被选中;队列的指针大于0,即有数据在队列中
//设置画笔
if((channel[i].Checked==1)&&(channel[i].SignalIndex>0))
{
hp=CreatePen(PS_SOLID,0,channel[i].DrawColour);
SelectObject(MemDC,hp);
MemDC.MoveTo(0,V_Size-channel[i].SignalLine[0]*V_Size/255);
for(int t=1;t<channel[i].SignalIndex;t++) //整个信号队列
MemDC.LineTo(t*300/channel[i].PointCount,V_Size-channel[i].SignalLine[t]*V_Size/255);
}
}
//双缓冲的拷备
cdc->BitBlt(StartX,StartY,H_Size+StartX,V_Size+StartY,&MemDC,0,0,SRCCOPY);
//cdc->BitBlt(0,0,H_Size,V_Size,&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(pOldBit);
//释放资源
MemBitmap.DeleteObject();
DeleteObject(hp);
MemDC.DeleteDC();
/*
/////绘制信号/////绘制信号/////绘制信号/////绘制信号/////绘制信号
/////绘制信号/////绘制信号/////绘制信号/////绘制信号/////绘制信号
hp=CreatePen(PS_SOLID,0,Line_Color);
SelectObject(MemDC,hp);
//******
///有待调整,有测试用的数字在里面
//******
MemDC.MoveTo(0,(V_Per*V_Grid_Count/2-S_Cache[i*H_Cent])*V_Size/(V_Per*V_Grid_Count)-Bm);
for(x=1;x<Cache_Size/H_Cent;x++)
{
Pix_X=(int)x*H_Size*H_Cent/Cache_Size;
Pix_Y=(V_Per*V_Grid_Count/2-S_Cache[i*H_Cent+x])*V_Size/(V_Per*V_Grid_Count);
MemDC.LineTo(Pix_X,Pix_Y-Bm);
}
*/
}
POINT CBK_Ground::ComputePoint(POINT Old_pt)
{
POINT pt;
pt.x=0;
return(pt);
}
void ChannelSet::Display()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -