SelDlg.cpp
上传用户:hzwailv
上传日期:2010-01-09
资源大小:405k
文件大小:2k
源码类别:

GIS编程

开发平台:

Visual C++

  1. // SelDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "MapDemo.h"
  5. #include "SelDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CSelLayerDlg dialog
  13. CSelLayerDlg::CSelLayerDlg(CWnd* pParent /*=NULL*/)
  14. : CDialog(CSelLayerDlg::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CSelLayerDlg)
  17. m_strListBox = _T("");
  18. m_strLayer = _T("");
  19. //}}AFX_DATA_INIT
  20. m_pMapX=NULL;
  21. }
  22. CSelLayerDlg::CSelLayerDlg(CMapX* pMapX,CWnd* pParent /*=NULL*/)
  23. : CDialog(CSelLayerDlg::IDD, pParent)
  24. {
  25. m_strListBox = _T("");
  26. m_strLayer = _T("");
  27. m_pMapX=pMapX;
  28. }
  29. void CSelLayerDlg::DoDataExchange(CDataExchange* pDX)
  30. {
  31. CDialog::DoDataExchange(pDX);
  32. //{{AFX_DATA_MAP(CSelLayerDlg)
  33. DDX_Control(pDX, IDC_LIST_LAYERDLG, m_listBox);
  34. DDX_LBString(pDX, IDC_LIST_LAYERDLG, m_strListBox);
  35. DDX_Text(pDX, IDC_STATIC_LAYERNAME, m_strLayer);
  36. //}}AFX_DATA_MAP
  37. }
  38. BEGIN_MESSAGE_MAP(CSelLayerDlg, CDialog)
  39. //{{AFX_MSG_MAP(CSelLayerDlg)
  40. ON_LBN_SELCHANGE(IDC_LIST_LAYERDLG, OnSelchangeListLayerdlg)
  41. //}}AFX_MSG_MAP
  42. END_MESSAGE_MAP()
  43. /////////////////////////////////////////////////////////////////////////////
  44. // CSelLayerDlg message handlers
  45. BOOL CSelLayerDlg::OnInitDialog() 
  46. {
  47. CDialog::OnInitDialog();
  48. if(m_pMapX==NULL) return TRUE;
  49.     CMapXLayers layers=m_pMapX->GetLayers();
  50.     int nIndex=-1;
  51. for(int i=0;i<layers.GetCount();i++)
  52. {
  53. CMapXLayer layer=layers.Item(i+1);
  54. CString strName=layer.GetName();
  55. m_listBox.AddString(strName);
  56. if(m_strLayer==strName) nIndex=i;
  57.     }
  58.     
  59. m_listBox.SetCurSel(nIndex);
  60. UpdateData(FALSE);
  61. return TRUE;  // return TRUE unless you set the focus to a control
  62.               // EXCEPTION: OCX Property Pages should return FALSE
  63. }
  64. void CSelLayerDlg::OnSelchangeListLayerdlg() 
  65. {
  66.       UpdateData(TRUE);
  67.   m_strLayer=m_strListBox;
  68.   UpdateData(FALSE);
  69. }
  70. CString CSelLayerDlg::GetEditLayerName()
  71. {
  72. return m_strLayer;
  73. }
  74. void CSelLayerDlg::SetEditLayerName(CString str)
  75. {
  76.      m_strLayer=str;
  77. }
  78. void CSelLayerDlg::OnOK() 
  79. {  
  80. if(m_pMapX!=NULL){
  81. UpdateData(FALSE);
  82. CMapXLayers layers=m_pMapX->GetLayers();
  83. CMapXLayer layer=layers.Item(m_strLayer);
  84. if(layer.GetEditable())
  85. layer.SetEditable(TRUE); 
  86.     }
  87. CDialog::OnOK();
  88. }