⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fluxdevice.cpp

📁 上位机图形显示程序,可用于8051单片机的开发,通信及控制
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetMaxFlux(double flux)
//输入参数:被检测流量的最大值
//返回值:无
//作用:设置被检测流量的最大值。
void FluxDevice::FD_SetMaxFlux(double flux)
{
	FD_MaxFlux = flux;
	if(FD_CurrentFlux > FD_MaxFlux)
		FD_CurrentFlux = FD_MaxFlux;
	DrawFace();
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetSize(UINT width, UINT height)
//输入参数:仪表的宽度和高度,单位是象素
//返回值:无
//作用:设置仪表的尺寸。
void FluxDevice::FD_SetSize(UINT width, UINT height)
{
	FD_Width = width;
	FD_Height = height;
	RECT rect;
	GetWindowRect(&rect);
	MoveWindow(rect.left, rect.top, width, height);
}

/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetOrigin(int x, int y)
//输入参数:坐标系原点相对于仪表在窗口左上角的位置坐标
//返回值:无
//作用:设置仪表的内部坐标系原点(也就是流量管的底部的中心)
void FluxDevice::FD_SetOrigin(int x, int y)
{
	FD_Origin.x = x;
	FD_Origin.y = y;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetPipeSize(UINT radius, UINT length)
//输入参数:流量管的半径radius,流量管的长度length
//返回值:无
//作用:设置仪表的流量管的尺寸
void FluxDevice::FD_SetPipeSize(UINT radius, UINT length)
{
	FD_PipeRadius = radius;
	FD_PipeLength = length;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetBkColor(COLORREF color)
//输入参数:背景颜色
//返回值:无
//作用:设置仪表的背景颜色(默认是对话框的背景颜色)
void FluxDevice::FD_SetBkColor(COLORREF color)
{
	FD_BkColor = color;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetFontSize(UINT size)
//输入参数:字体的大小
//返回值:无
//作用:设置流量表的刻度文字尺寸
void FluxDevice::FD_SetFontSize(UINT size)
{
	FD_FontSize = size;
	FD_Font.DeleteObject();
	FD_Font.CreateFont(FD_FontSize, 0, 0, 0, FW_NORMAL, 0, 0, 0, ANSI_CHARSET, OUT_STROKE_PRECIS, CLIP_STROKE_PRECIS, DRAFT_QUALITY, VARIABLE_PITCH | FF_SWISS, _T("Arial"));	//创建一个默认的字体
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetFrameSize(UINT radius, UINT length)
//输入参数:框架的半径radius(通常应该比流量管半径要大一些)
//			框架长度length,这个长度是只能被看见的部分的长度(不包含被流量管遮住的部分)
//			length表示流量管上下两头的框架高度都是length个象素
//返回值:无
//作用:设置流量表的框架(固定流量管的金属架子)字尺寸
void FluxDevice::FD_SetFrameSize(UINT radius, UINT length)
{
	FD_FrameRadius = radius;
	FD_FrameLength = length;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetFrameFrontColor(COLORREF color)
//输入参数:框架外表面的颜色
//返回值:无
//作用:设置框架外表面(只在流量管两头看得见)的颜色
void FluxDevice::FD_SetFrameFrontColor(COLORREF color)
{
	FD_FrameFrontColor = color;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetFrameBackColor(COLORREF color)
//输入参数:框架的内表面的颜色
//返回值:无
//作用:设置框架内表面(当流量管未满时能看到)的颜色
void FluxDevice::FD_SetFrameBackColor(COLORREF color)
{
	FD_FrameBackColor = color;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetHighLevelColor(COLORREF color)
//输入参数:液体颜色
//返回值:无
//作用:设置流量达到高水平时流量管液体的颜色
void FluxDevice::FD_SetHighLevelColor(COLORREF color)
{
	FD_HighLevelColor = color;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetMiddleLevelColor(COLORREF color)
//输入参数:液体颜色
//返回值:无
//作用:设置流量达到中等水平时流量管液体的颜色
void FluxDevice::FD_SetMiddleLevelColor(COLORREF color)
{
	FD_MiddleLevelColor = color;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetLowLevelColor(COLORREF color)
//输入参数:液体颜色
//返回值:无
//作用:设置流量达到低水平时流量管液体的颜色
void FluxDevice::FD_SetLowLevelColor(COLORREF color)
{
	FD_LowLevelColor = color;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetBigGridNum(UINT number)
//输入参数:格子数目
//返回值:无
//作用:设置流量表大刻度的格子数目
void FluxDevice::FD_SetBigGridNum(UINT number)
{
	FD_BigGridNum = number;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetBigGridLength(UINT length)
//输入参数:刻度线长度,单位是象素
//返回值:无
//作用:设置流量表大刻度线的长度
void FluxDevice::FD_SetBigGridLength(UINT length)
{
	FD_BigGridLength = length;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetTextColor(COLORREF color)
//输入参数:刻度文字的颜色
//返回值:无
//作用:设置流量表刻度文字的颜色
void FluxDevice::FD_SetTextColor(COLORREF color)
{
	FD_TextColor = color;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetTextOffset(int x, int y)
//输入参数:文字相对于刻度线末端在x方向的偏移量和在y方向的偏移量
//返回值:无
//作用:设置流量表刻度文字相对于刻度线末端的位置
void FluxDevice::FD_SetTextOffset(int x, int y)
{
	FD_TextOffset.x = x;
	FD_TextOffset.y = y;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetGridColor(COLORREF color)
//输入参数:刻度线的颜色
//返回值:无
//作用:设置流量表刻度线的颜色
void FluxDevice::FD_SetGridColor(COLORREF color)
{
	FD_GridColor = color;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetGridOffset(int x_offset)
//输入参数:刻度线在X方向相对于原点的偏移量
//返回值:无
//作用:设置流量表刻度线在X方向相对于原点的偏移量
void FluxDevice::FD_SetGridOffset(int x_offset)
{
	FD_GridXOffset = x_offset;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetLevelRatio(double high_ratio, double middle_ratio)
//输入参数:high_ratio为中等流量和高流量的分界线,middle_ratio为低流量和中等流量的分界线
//返回值:无
//作用:设置流量表各流量等级的划分界线,用比例(小于1的正小数)表示
void FluxDevice::FD_SetLevelRatio(double high_ratio, double middle_ratio)
{
	FD_HighLevelRatio = high_ratio;
	FD_MiddleLevelRatio = middle_ratio;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetSmallGridNum(UINT number)
//输入参数:小刻度格子数目(最好是大刻度格子数目的整数倍)
//返回值:无
//作用:设置流量表小刻度的格子数目
void FluxDevice::FD_SetSmallGridNum(UINT number)
{
	FD_SmallGridNum = number;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:FD_SetSmallGridNum(UINT number)
//输入参数:小刻度线的长度(一般是小于大刻度线的长度)
//返回值:无
//作用:设置流量表小刻度线的长度
void FluxDevice::FD_SetSmallGridLength(UINT length)
{
	FD_SmallGridLength = length;
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:GetNextColor(COLORREF current_color, int delta)
//输入参数:current_color为源颜色,delta为变化量(可以取正负值)
//返回值:无
//作用:获得current_color的同样色调的下一颜色(如果delta大于0则为更亮的颜色,小于0则为更暗的颜色)
COLORREF FluxDevice::GetNextColor(COLORREF current_color, int delta)
{
	long red = 0, green = 0, blue = 0;
	if(GetRValue(current_color))
		red = GetRValue(current_color) + delta;
	if(GetGValue(current_color))
		green = GetGValue(current_color) + delta;
	if(GetBValue(current_color))
		blue = GetBValue(current_color) + delta;
	if(red > 255)
	{
		red = 255;
		return current_color;
	}
	if(green > 255)
	{
		green = 255;
		return current_color;
	}
	if(blue > 255)
	{
		blue = 255;	
		return current_color;
	}
	if(red < 0)
	{
		red = 0;
		return current_color;
	}
	if(green < 0)
	{
		green = 0;
		return current_color;
	}
	if(blue < 0)
	{
		blue = 0;
		return current_color;
	}
	return RGB(red, green, blue);
}


/////////////////////////////////////////////////////////////////////////////////////////
//函数名:GetNextColor(COLORREF color, double ratio)
//输入参数:current_color为源颜色,ratio为变化比率
//返回值:无
//作用:获得current_color的同样色调的下一颜色(如果ratio大于1则为更亮的颜色,小于1则为更暗的颜色)
COLORREF FluxDevice::GetNextColor(COLORREF current_color, double ratio)
{
	long red, green, blue;
	red = (long)(GetRValue(current_color) * ratio);
	green = (long)(GetGValue(current_color) * ratio);
	blue = (long)(GetBValue(current_color) * ratio);
	if(red > 255)
		red = 255;
	if(green > 255)
		green = 255;
	if(blue > 255)
		blue = 255;
	if(red < 0)
		red = 0;
	if(green < 0)
		green = 0;
	if(blue < 0)
		blue = 0;
	return RGB(red, green, blue);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -