📄 rudderdevice.h
字号:
/////////////////////////////////////////////////////////
// 舵型指示设备RudderDevice封装类
// 版本:1.05
// 最后修改日期:2002.1.25
/////////////////////////////////////////////////////////
#if !defined(AFX_RUDDERDEVICE_H__A0E65EC3_ED3F_426E_ACCE_6B554EC12456__INCLUDED_)
#define AFX_RUDDERDEVICE_H__A0E65EC3_ED3F_426E_ACCE_6B554EC12456__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// RudderDevice.h : header file
//
#define PI 3.14159265 //圆周率
#define ANG PI/180 //1度的角度相对的弧度值
//下面的宏定义仪表的工作状态
#define RD_TEST 0 //仪表的自检状态
#define RD_UPDATED 1 //仪表的工作状态之一,表示档位已经到达正确位置
#define RD_UPDATING 2 //仪表的工作状态之一,表示档位位置正在更新
#define RD_SHUTDOWN 3 //仪表的关闭状态,不作任何动作
/////////////////////////////////////////////////////////////////////////////
// RudderDevice window
class RudderDevice : public CStatic
{
// Construction
public:
RudderDevice(CWnd * parent);
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(RudderDevice)
//}}AFX_VIRTUAL
// Implementation
public:
void RD_SetAxleRadius(UINT radius);
void RD_SetFrameThick(UINT thick);
void RD_SetTextDarkColor(COLORREF color);
void RD_SetTextLightColor(COLORREF color);
void RD_SetHasAxle(UINT command);
void RD_SetText(CString textleft, CString textright);
void RD_SetFontSize(UINT size);
void RD_SetLampSize(UINT width, UINT height);
void RD_SetLampOffset(int x, int y);
void RD_SetOrigin(int x, int y);
void RD_SetFrameRadius(UINT radius);
void RD_SetSize(UINT width, UINT height);
void RD_SetAxleLength(UINT length);
void RD_SetSweepAngle(double angle);
void RD_SetCurrentLevel(int level);
void RD_SetLevelRange(int minlv, int maxlv);
void RD_SetLampLightColor(COLORREF color);
void RD_SetLampDarkColor(COLORREF color);
void RD_SetBkColor(COLORREF color);
void RD_SetColor(COLORREF color);
void RD_SetStatus(UINT status);
void RD_Update(void);
void RD_MoveWindow(int x, int y);
virtual ~RudderDevice();
// Generated message map functions
protected:
//{{AFX_MSG(RudderDevice)
afx_msg void OnPaint();
afx_msg void OnTimer(UINT nIDEvent);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
int RD_RotateDirection; //仪表当前的转动状态,1表示向变大方向,-1则相反
UINT RD_Height; //仪表的高度
UINT RD_Width; //仪表的宽度
UINT RD_Status; //仪表的当前状态
UINT RD_HasAxle; //标志仪表是否具有摆动轴的变量
COLORREF RD_BkColor; //仪表的背景颜色
COLORREF RD_Color; //仪表的颜色
CPoint RD_Origin; //仪表的参考系原点
UINT RD_FontSize; //标注文字的大小
COLORREF RD_TextDarkColor; //未选中档对应的文字的颜色
COLORREF RD_TextLightColor; //当前档对应的文字的颜色
CString RD_TextLeft; //左侧文字标注的字符串,各档的文字用","号分割开
CString RD_TextRight; //右侧标注文字的内容
CPoint RD_TextOffset; //左侧标注文字的内容
CFont RD_Font; //两侧标注文字的字体
UINT RD_LampHeight; //指示灯的高度
UINT RD_LampWidth; //指示灯的宽度
COLORREF RD_LampDarkColor; //指示灯熄灭状态的颜色
COLORREF RD_LampLightColor; //指示灯点亮转头的颜色
CPoint RD_LampOffset; //最低档位的(右侧)指示灯相对于内部坐标系原点的坐标偏移量
UINT RD_FrameRadius; //仪表弧形表面的半径
UINT RD_FrameThick; //仪表弧线表面的宽度
int RD_ObjectLevel; //仪表要显示的目标档位
int RD_CurrentLevel; //仪表的当前档位
int RD_MinLevel; //仪表内的最低档位
int RD_MaxLevel; //仪表内的最高档位
UINT RD_SweepLevel; //仪表的档位总数
double RD_SweepAngle; //摆动轴的摆动幅度,采用角度值
double RD_CurrentAngle; //摆动轴的当前夹角,相对于Z轴正向,采用角度值
double RD_AnglePerLevel;//仪表每变化一个档位转过的角度
UINT RD_AxleRadius; //仪表摆动轴的截面半径
UINT RD_AxleLength; //仪表摆动轴的长度
CPoint RD_AxleCenter; //摆动轴的端面中心位置
COLORREF GetNextColor(COLORREF current_color, int delta);
COLORREF GetNextColor(COLORREF color, double ratio);
void DrawFace(void);}; //该函数绘制仪表的界面
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_RUDDERDEVICE_H__A0E65EC3_ED3F_426E_ACCE_6B554EC12456__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -