PropertyGridItemDegree.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #pragma once
  2. class CPropertyGridItemDegree : public CPropertyGridItem
  3. {
  4. public:
  5. // 构造函数:
  6. // strCaption -属性名称
  7. // fDegree -初始属性值,单位:度
  8. // nSecondPrecision-秒的小数部分的位数,范围0-3
  9. CPropertyGridItemDegree(CString strCaption, double fDegree = 0, int nSecondPrecision = 2);
  10. // 构造函数:
  11. // nID -属性ID
  12. // fDegree -初始属性值,单位:度
  13. // nSecondPrecision-秒的小数部分的位数,范围0-3
  14. CPropertyGridItemDegree(UINT nID, double fDegree = 0, int nSecondPrecision = 2);
  15. virtual ~CPropertyGridItemDegree();
  16. // 设置属性值:
  17. // fDegree-新的属性值,单位:度
  18. void SetDegree(double fDegree);
  19. // 获取属性值,返回值单位:度
  20. double GetDegree();
  21. // 把浮点数形式的度转换成度分秒格式的文本:
  22. // fDegree - 浮点数形式的度
  23. // nSecondPrecision - 指示秒的小数点后保留几位,范围0-3
  24. // 函数返回度分秒格式的文本。例如当秒保留两位小数时,-10.13度
  25. // 转换成文本后内容为“-10°07'48.00"”。
  26. static CString DegreeToString(double fDegree, int nSecondPrecision = 2);
  27. // 把度分秒格式的文本转换成浮点数形式的度:
  28. // strText - 度分秒格式的文本
  29. // 函数返回浮点数形式的度
  30. static double StringToDegree(CString strText);
  31. // 把一个浮点变量绑定到属性项
  32. void BindToDegree(double* pBindDegree);
  33. // 设置属性项的最小值
  34. void SetMinDegree(double fMinValue);
  35. // 设置属性项的最大值
  36. void SetMaxDegree(double fMaxValue);
  37. protected:
  38. double m_fDegree; // 属性值,单位:度
  39. int m_nSecondPrecision; // 秒的小数部分的位数,范围0-3
  40. double* m_pBindDegree; // 绑定到属性项的浮点变量
  41. BOOL m_bHasMinValue; // 标识是否有最小值
  42. BOOL m_bHasMaxValue; // 标识是否有最大值
  43. double m_fMinValue; // 属性项的最小值
  44. double m_fMaxValue; // 属性项的最大值
  45. // 当属性值由于用户输入而改变时,调用此函数
  46. virtual void SetValue(CString strValue);
  47. void _Init();
  48. };