RegPtDLG.cpp
上传用户:lbr_007
上传日期:2019-05-31
资源大小:282k
文件大小:3k
源码类别:

传真(Fax)编程

开发平台:

Visual C++

  1. // RegPtDLG.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "tiffsample.h"
  5. #include "RegPtDLG.h"
  6. #include <geo.h>
  7. #include <StringUtil.h>
  8. using namespace std;
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. namespace RPTSettings {
  15. double alt = 5000;
  16. int num = 1;
  17. };
  18. /////////////////////////////////////////////////////////////////////////////
  19. // RegPtDLG dialog
  20. RegPtDLG::RegPtDLG(CWnd* pParent /*=NULL*/)
  21. : CDialog(RegPtDLG::IDD, pParent)
  22. {
  23. //{{AFX_DATA_INIT(RegPtDLG)
  24. // NOTE: the ClassWizard will add member initialization here
  25. //}}AFX_DATA_INIT
  26. m_alt = m_lat = m_lon = 0.0;
  27. }
  28. void RegPtDLG::DoDataExchange(CDataExchange* pDX)
  29. {
  30. CDialog::DoDataExchange(pDX);
  31. //{{AFX_DATA_MAP(RegPtDLG)
  32. DDX_Control(pDX, IDC_ALT_EDIT, m_altEdit);
  33. DDX_Control(pDX, IDC_NAME_EDIT, m_nameEdit);
  34. DDX_Control(pDX, IDC_LON_EDIT, m_lonEdit);
  35. DDX_Control(pDX, IDC_LAT_EDIT, m_latEdit);
  36. //}}AFX_DATA_MAP
  37. }
  38. BEGIN_MESSAGE_MAP(RegPtDLG, CDialog)
  39. //{{AFX_MSG_MAP(RegPtDLG)
  40. //}}AFX_MSG_MAP
  41. END_MESSAGE_MAP()
  42. /////////////////////////////////////////////////////////////////////////////
  43. // RegPtDLG message handlers
  44. BOOL RegPtDLG::OnInitDialog() 
  45. {
  46. CDialog::OnInitDialog();
  47. string s;
  48. GeoCalc::EncodeLatitude(m_lat, s);
  49. m_latEdit.SetWindowText(s.c_str());
  50. GeoCalc::EncodeLongitude(m_lon, s);
  51. m_lonEdit.SetWindowText(s.c_str());
  52. char txt[24];
  53. if (m_alt < 0.10)
  54. sprintf(txt,"%1.f",RPTSettings::alt);
  55. else
  56. sprintf(txt,"%.1f",m_alt);
  57. m_altEdit.SetWindowText(txt);
  58. if (m_name.length() == 0)
  59. sprintf(txt,"P%d",RPTSettings::num++);
  60. else
  61. sprintf(txt,"%s",m_name.c_str());
  62. m_nameEdit.SetWindowText(txt);
  63. return TRUE;  // return TRUE unless you set the focus to a control
  64.               // EXCEPTION: OCX Property Pages should return FALSE
  65. }
  66. void RegPtDLG::OnOK() 
  67. {
  68. CString cs;
  69. m_nameEdit.GetWindowText(cs);
  70. if (cs.GetLength() > 0)
  71. {
  72. m_name = (const char *)(LPCTSTR)cs;
  73. m_latEdit.GetWindowText(cs);
  74. m_lat = GeoCalc::DecodeLatitude((LPCTSTR)cs);
  75. m_lonEdit.GetWindowText(cs);
  76. m_lon = GeoCalc::DecodeLongitude((LPCTSTR)cs);
  77. m_altEdit.GetWindowText(cs);
  78. string s = (LPCTSTR)cs;
  79. if (StringUtil::IsFloatNumber(s))
  80. {
  81. m_alt = atof(s.c_str());
  82. RPTSettings::alt = m_alt;
  83. }
  84. else
  85. {
  86. AfxMessageBox("Altitude must be a real number",MB_ICONERROR);
  87. return;
  88. }
  89. }
  90. else
  91. {
  92. AfxMessageBox("You must enter a name for this click-point",MB_ICONERROR);
  93. return;
  94. }
  95. CDialog::OnOK();
  96. }