Hello.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. #include <afxwin.h>
  2. #include <math.h>
  3. // #begin.第1步.使用GDI+
  4. #include <GdiPlus.h>
  5. using namespace Gdiplus;
  6. //#pragma comment(lib, "gdiplus.lib")
  7. // #end
  8. class CMyApp: public CWinApp
  9. {
  10. public:
  11. virtual BOOL InitInstance();
  12. // #begin第2步.使用GDI+
  13. private:
  14. Gdiplus::GdiplusStartupInput gdiplusStartupInput;
  15. ULONG_PTR gdiplusToken;
  16. // #end
  17. public:
  18. virtual int ExitInstance();
  19. };
  20. class CMainWindow : public CFrameWnd
  21. {
  22. public:
  23. CMainWindow();
  24. protected:
  25. afx_msg void OnPaint();
  26. DECLARE_MESSAGE_MAP();
  27. public:
  28. int m_nLowwer;
  29. int m_nUpper;
  30. CString m_strVar;
  31. LONG m_lAspectN;
  32. LONG m_lAspectD;
  33. INT HorzRes;
  34. INT VertRes;
  35. CRect m_rect;
  36. //COLORREF m_clrCurrentLine;
  37. //COLORREF m_clrCurrentBack;
  38. //COLORREF m_clrCurrentFore;
  39. public:
  40. COLORREF m_clrFore; // 前景色
  41. COLORREF m_clrLine; // 线色
  42. COLORREF m_clrBack; // 背景色
  43. COLORREF m_clrFill; // 填充色
  44. LOGFONT m_logfont; // 字体
  45. CString m_strLineType; // 线型
  46. int m_nLineWidth; // 线宽
  47. CString m_strCaption; // 静态文本
  48. BOOL m_bVariant; // 是否是变量r
  49. BOOL m_bDynShow; // 是否动态显示
  50. CString m_strDynShow; // 动态显示条件
  51. BOOL m_bLocked;
  52. BOOL m_bAligned; // 用来等距排列的标志位
  53. // 动态参数
  54. COLORREF m_clrDynFore; // 前景色
  55. CString m_strDynForeCon;
  56. COLORREF m_clrDynBack;
  57. CString m_strDynBackCon;
  58. COLORREF m_clrDynLine;
  59. CString m_strDynLineCon;
  60. BOOL m_bDynFore;
  61. BOOL m_bDynBack;
  62. BOOL m_bDynLine;
  63. int m_nFillMode;
  64. CString m_strHoriPos;
  65. CString m_strHoriSize;
  66. CString m_strVertiPos;
  67. CString m_strVertiSize;
  68. BOOL m_bVertiSize;
  69. BOOL m_bVertiPos;
  70. BOOL m_bHorizSize;//注意: 为真时 报警背景闪烁
  71. BOOL m_bHorizPos;
  72. int m_nHorAlign;
  73. int m_nVerAlign;
  74. // 动态值
  75. CRect m_rctCurrent;
  76. COLORREF m_clrCurrentFore;
  77. COLORREF m_clrCurrentBack;
  78. COLORREF m_clrCurrentLine;
  79. CString m_strCurrentCaption;
  80. BOOL m_bShow;
  81. float m_fCurrentValue;
  82. BOOL m_bShowtemp;//chn add 为了GIF,flasg,OCX的隐藏和显示
  83. public:
  84. void InitCLR();
  85. void Draw(CDC *pDC);
  86. void DrawFace(CDC *pDC);
  87. public:
  88. typedef struct ST_WATCHDIAL // 表盘属性;
  89. {
  90. float wd_fRadian; // 表盘张开的弧度;
  91. int wd_nTypeShow; // 显示类型;(0==居中,1==左轴,2==右轴);
  92. float wd_fMin; // 表盘范围最小值;
  93. float wd_fMax; // 表盘范围最大值;
  94. CString wd_strUnit; // 表盘量程单位;
  95. int wd_nRadius[3]; // 表盘内弧半径;
  96. int wd_nTable; // 表盘每段大刻度格子数(小刻度);
  97. int wd_nScale; // 表盘大刻度段数();
  98. int wd_nIndicator; // 指针粗细;
  99. COLORREF wd_clIndicator; // 指针颜色;
  100. COLORREF wd_clBk; // 表盘背景色;
  101. COLORREF wd_clArc; // 表盘弧线色;
  102. COLORREF wd_clScale; // 表盘段色;
  103. COLORREF wd_clTable; // 表盘格子色;
  104. COLORREF wd_clRange; // 表盘量程值字体颜色;
  105. CFont wd_ftRange; // 表盘量程值字体;
  106. COLORREF wd_clUnit; // 表盘单位字体颜色;
  107. CFont wd_ftUnit; // 表盘单位字体;
  108. COLORREF wd_clInfo; // 表盘内容字体颜色;
  109. CFont wd_ftInfo; // 表盘内容字体;
  110. };
  111. void DrawWatch(
  112. CDC *pDC,
  113. CRect &Wrect,
  114. float fMin, // 最小范围值;
  115. float fMax, // 最大范围值;
  116. const float &fValue, // 当前值;
  117. CString strUnit, // 量程单位;
  118. const float &fRadian, // 范围弧度大小;
  119. int nRadius[3], // 内弧半径;
  120. const int &nTable, // 大刻度数;
  121. const int &nScale // 小刻度数;
  122. );
  123. };