⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 identifydlg.h

📁 在vc环境下
💻 H
字号:
// CIdentifyDlg.h : Declaration of the CCIdentifyDlg

#pragma once

#include "resource.h"       // main symbols
#include "Geobase.h"


#include <vector>

//#include "ShapeFile.h"
//#include "Raster.h"
// CCIdentifyDlg

using namespace GeoBase;

class CIdentifyDlg : 
	public CAxDialogImpl<CIdentifyDlg>
{
public:
	CIdentifyDlg():m_isShow(FALSE)
	{
	}

	~CIdentifyDlg()
	{
	}

	enum { IDD = IDD_IDENTIFYDLG };

BEGIN_MSG_MAP(CIdentifyDlg)
	MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
	//COMMAND_HANDLER(IDOK, BN_CLICKED, OnClickedOK)
	COMMAND_HANDLER(IDCANCEL, BN_CLICKED, OnClickedCancel)	
	MESSAGE_HANDLER(WM_SIZE, OnSize)
	CHAIN_MSG_MAP(CAxDialogImpl<CIdentifyDlg>)
END_MSG_MAP()


public:
	BOOL get_isShow();
	void set_isShow(BOOL show);		

public:
	void Show(const IPointPtr& cpPoint,const IActiveViewPtr& cpActiveView,BOOL bAdd);
	void ShowHelp(const IActiveViewPtr& cpActiveView);
private:
	void ShowPostion(const IPointPtr& cpPoint);
	void ShowLayer(const IActiveViewPtr& cpActiveView);
	void ShowList(const IFeaturePtr& cpFeature);

	void ShowTree(const std::vector<IFeaturePtr>& cpFeatures,
				  const IFeaturePtr& cpCloestFeature,
				  BOOL bAdd);

	void GetCloestFeature(const IActiveViewPtr& cpActiveView,
							const IPointPtr& cpPoint,
							std::vector<IFeaturePtr>& vecFeatures,
							const IFeaturePtr& cpCloestFeature);
private:
	//IPointPtr		 m_cpPoint;
	//IActiveViewPtr m_cpActiveView;
	BOOL                     m_isShow;          //is dialog window's show
	CWindow                m_winComboBox;
	CWindow                m_winStatic;
	CWindow                m_winListCtl;
	CWindow                m_winTreeCtl;


// Handler prototypes:
//  LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
//  LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
//  LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);

	LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
	{
		CAxDialogImpl<CIdentifyDlg>::OnInitDialog(uMsg, wParam, lParam, bHandled);

		m_winStatic=GetDlgItem(IDC_POSTION);
		m_winComboBox=GetDlgItem(IDC_COMBO1);
		m_winListCtl=GetDlgItem(IDC_LIST1);
		m_winTreeCtl=GetDlgItem(IDC_TREE1);
		m_winListCtl.SetFocus();
		
		//get position from register
		HKEY hKey;
		if(OpenReg(HKEY_CLASSES_ROOT,_T("ArcCommands.Identify\\Position"),KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY,&hKey))
		{
			int x,y,cx,cy;
			
			if (ReadFromReg(hKey,_T("X"),x)&&ReadFromReg(hKey,_T("Y"),y)&&
				ReadFromReg(hKey,_T("cx"),cx)&&ReadFromReg(hKey,_T("cy"),cy))
			{
				SetWindowPos(NULL,x,y,cx,cy,NULL);
			}
			
			CloseReg(hKey);

		}

		//set ListControl's Column
		LVCOLUMN colField;
		LVCOLUMN colValue;

		colField.mask=LVCF_TEXT|LVCF_WIDTH;
		colField.pszText=_T("属性");
		colField.cx=50;
		ListView_InsertColumn(m_winListCtl.m_hWnd,0,&colField);

		colValue.mask=LVCF_TEXT|LVCF_WIDTH;
		colField.pszText=_T("值");
		colField.cx=200;
		ListView_InsertColumn(m_winListCtl.m_hWnd,1,&colField);

		return 1;  // Let the system set the focus
	}

	/*LRESULT OnClickedOK(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
	{
		EndDialog(wID);
		return 0;
	}
*/
	LRESULT OnClickedCancel(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
	{
		//Save dialog's position to Register
		HKEY hKey;
		if(OpenReg(HKEY_CLASSES_ROOT,_T("ArcCommands.Identify\\Position"),KEY_ALL_ACCESS,&hKey))
		{
			int x,y,cx,cy;
			RECT pos;
			GetWindowRect(&pos);
			x=pos.left;
			y=pos.top;
			cx=pos.right-pos.left;
			cy=pos.bottom-pos.top;

			WriteToReg(hKey,_T("X"),x);
			WriteToReg(hKey,_T("Y"),y);
			WriteToReg(hKey,_T("cx"),cx);
			WriteToReg(hKey,_T("cy"),cy);			

			CloseReg(hKey);
		}

		DestroyWindow();
		m_isShow=FALSE;
		return 0;
	}


public:
	LRESULT OnSize(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
};


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -