TocDlg.cpp
上传用户:juying163
上传日期:2014-09-24
资源大小:5867k
文件大小:4k
源码类别:

GIS编程

开发平台:

Visual C++

  1. // TocDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "3D0214.h"
  5. #include "TocDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CTocDlg dialog
  13. CTocDlg::CTocDlg(CWnd* pParent /*=NULL*/)
  14. : CDialog(CTocDlg::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CTocDlg)
  17. // NOTE: the ClassWizard will add member initialization here
  18. //}}AFX_DATA_INIT
  19. }
  20. void CTocDlg::DoDataExchange(CDataExchange* pDX)
  21. {
  22. CDialog::DoDataExchange(pDX);
  23. //{{AFX_DATA_MAP(CTocDlg)
  24. DDX_Control(pDX, IDC_TOCCONTROL1, m_TocControl);
  25. //}}AFX_DATA_MAP
  26. }
  27. BEGIN_MESSAGE_MAP(CTocDlg, CDialog)
  28. //{{AFX_MSG_MAP(CTocDlg)
  29. ON_WM_SIZE()
  30. ON_WM_CREATE()
  31. //}}AFX_MSG_MAP
  32. END_MESSAGE_MAP()
  33. /////////////////////////////////////////////////////////////////////////////
  34. // CTocDlg message handlers
  35. void CTocDlg::OnSize(UINT nType, int cx, int cy) 
  36. {
  37. CDialog::OnSize(nType, cx, cy);
  38. // TODO: Add your message handler code here
  39. CWnd * tocControl=GetDlgItem(IDC_TOCCONTROL1);
  40. CRect tocControlrect;
  41. if(tocControl)
  42. {
  43. tocControl->GetWindowRect(&tocControlrect);
  44. tocControl->MoveWindow(0,0,cx,cy);
  45. }
  46. }
  47. BOOL CTocDlg::OnInitDialog() 
  48. {
  49. CDialog::OnInitDialog();
  50. // TODO: Add extra initialization here
  51. // CComBSTR bstrProgID;
  52. //    CComVariant varProgID;  
  53. // varProgID.vt = VT_BSTR;
  54. // //智能指针实例化
  55. // m_ipToolbarMenu.CreateInstance(CLSID_ToolbarMenu);
  56. // //添加菜单项目
  57. // bstrProgID = _T("C0214.DelLayer.1");//添加删除按钮
  58. // varProgID.bstrVal = bstrProgID;
  59. // m_ipToolbarMenu->AddItem(varProgID, -1, -1, VARIANT_FALSE, esriCommandStyleIconAndText, 0);
  60. // bstrProgID = _T("C0214.UpLayer.1"); //添加上移按钮
  61. // varProgID.bstrVal = bstrProgID;
  62. // m_ipToolbarMenu->AddItem(varProgID, -1, -1, VARIANT_FALSE, esriCommandStyleIconAndText, 0);
  63. // bstrProgID = _T("C0214.DownLayer.1");//添加下移按钮
  64. // varProgID.bstrVal = bstrProgID;
  65. // m_ipToolbarMenu->AddItem(varProgID, -1, -1, VARIANT_FALSE, esriCommandStyleIconAndText, 0); 
  66. //  
  67. // m_ipToolbarMenu->get_CommandPool(&m_CmdPool);
  68. //
  69. //    m_CmdPool->get_Command(0,&m_DelCmd);//获取删除ICommand实例
  70. //    ipDl=m_DelCmd;//查询删除 IPutLayerName 接口
  71. //    m_CmdPool->get_Command(1,&m_DelCmd);//获取上移ICommand实例
  72. //    ipUl=m_DelCmd;//查询上移 IPutLayerName 接口
  73. //    m_CmdPool->get_Command(2,&m_DelCmd);//获取下移ICommand实例
  74. //    ipNl=m_DelCmd;//查询下移 IPutLayerName 接口
  75. return TRUE;  // return TRUE unless you set the focus to a control
  76.               // EXCEPTION: OCX Property Pages should return FALSE
  77. }
  78. int CTocDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  79. {
  80. if (CDialog::OnCreate(lpCreateStruct) == -1)
  81. return -1;
  82. // TODO: Add your specialized creation code here
  83. return 0;
  84. }
  85. BEGIN_EVENTSINK_MAP(CTocDlg, CDialog)
  86.     //{{AFX_EVENTSINK_MAP(CTocDlg)
  87. ON_EVENT(CTocDlg, IDC_TOCCONTROL1, 1 /* OnMouseDown */, OnOnMouseDownToccontrol1, VTS_I4 VTS_I4 VTS_I4 VTS_I4)
  88. //}}AFX_EVENTSINK_MAP
  89. END_EVENTSINK_MAP()
  90. void CTocDlg::OnOnMouseDownToccontrol1(long button, long shift, long x, long y) 
  91. {
  92. // TODO: Add your control notification handler code here
  93. // ILayerPtr ipLayer; 
  94. //    IUnknownPtr ipUn1;
  95. //    IUnknownPtr ipUn2;
  96. //    IUnknownPtr ipUn3;
  97. //  VARIANT vd;
  98. //    long lt;BSTR bName;
  99. // m_TocControl.HitTest(x,y,&lt,&ipUn1,&ipUn2,&ipUn3,&vd);//获取鼠标在TOCControl 上点击的项目信息
  100. // if(lt==2)// 项目为2时是点击的图层
  101. // {
  102. //
  103. // ipLayer=ipUn2;//ipUn1是返回点击的图层的 IUnknown 接口实例,通过查询得到图层接口实例      
  104. // ipLayer->get_Name(&bName);//获取图层名      
  105. //     ipDl->PutName(bName);//将图层名传递给各按钮对象,当用户点右键,选择相应功能时,系统就
  106. //        ipUl->PutName(bName);//可以针对相应图层进行操作。
  107. //        ipNl->PutName(bName);
  108. // if (button ==2 ) 
  109. // m_ipToolbarMenu->PopupMenu(x, y,(long)this->GetSafeHwnd());
  110. //
  111. // }
  112. // else
  113. // {
  114. // bName=::SysAllocString(L"");
  115. //        ipDl->PutName(bName);
  116. // } 
  117. }