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

📄 resorgnetaddintoolwindowsctrl.cpp

📁 ResOrg 图形化管理Vc项目的资源ID的工具的源代码。 ResOrg - Manage and Renumber Resource Symbol IDs Introduction The
💻 CPP
字号:
/************************************************************************
 *
 *            Resource ID Organiser Add-In for Visual C++.NET
 *
 * (c) Copyright 2000-2002 by Anna-Jayne Metcalfe (resorg@annasplace.me.uk)
 *                         All rights reserved.
 *
 ************************************************************************
 *                                                                       
 *  Filename    : ResOrgNETAddInToolWindowsCtrl.cpp
 *
 *  Description : CResOrgNETAddInToolWindowsCtrl - ResOrg.NET Tool Window
 *                ActiveX control class
 *
 *  Compiler    : Microsoft Visual C++ .NET
 *                                                                       
 *  Target                                                               
 *  Environment : Windows 2000/XP
 *
 *  NOTE:
 *
 *    This software is provided "as is" free for personal use. All
 *    title and copyrights in and to the software, including but not
 *    limited to any images, text, etc. incorporated into it, are
 *    owned by Anna-Jayne Metcalfe, except where acknowledged otherwise.
 *
 *    Your may freely to use this code in your own products, PROVIDED
 *    this notice is not removed or modified.
 *
 *
 *    Visit http://www.annasplace.me.uk/resorg for latest updates
 *
 ************************************************************************
 *
 *   MODIFICATION HISTORY:
 *
 *           This is a controlled document. See project configuration
 *           control tool for latest version and full version history.
 *
 *    $Archive: /Projects/AddIns/ResOrg/ResOrgNETAddInToolWindows/ResOrgNETAddInToolWindowsCtrl.cpp $
 *   $Revision: 7 $
 *       $Date: 25/11/02 16:50 $
 *     $Author: Anna $
 *
 *    $History: ResOrgNETAddInToolWindowsCtrl.cpp $
 * 
 * *****************  Version 7  *****************
 * User: Anna         Date: 25/11/02   Time: 16:50
 * Updated in $/Projects/AddIns/ResOrg/ResOrgNETAddInToolWindows
 * Changed website address in banner
 * 
 * *****************  Version 6  *****************
 * User: Anna         Date: 22/10/02   Time: 14:45
 * Updated in $/Projects/AddIns/ResOrg/ResOrgNETAddInToolWindows
 * Changed name/email address (at last!)
 * 
 * *****************  Version 5  *****************
 * User: Andy         Date: 8/08/02    Time: 20:37
 * Updated in $/Projects/AddIns/ResOrg/ResOrgNETAddInToolWindows
 * Added CResOrgNETAddInToolWindowsCtrl::PreTranslateMessage() in a vaind
 * attempt to find out why the tooltips aren't showing in the Form View
 * 
 * *****************  Version 4  *****************
 * User: Andy         Date: 6/08/02    Time: 10:34
 * Updated in $/Projects/AddIns/ResOrg/ResOrgNETAddInToolWindows
 * Removed PROPPAGEIDS macros (this control has no property pages)
 * 
 * *****************  Version 3  *****************
 * User: Andy         Date: 5/08/02    Time: 13:37
 * Updated in $/Projects/AddIns/ResOrg/ResOrgNETAddInToolWindows
 * This control now has no property pages...remember to tell the framework
 * that!
 * 
 * *****************  Version 2  *****************
 * User: Andy         Date: 2/08/02    Time: 17:04
 * Updated in $/Projects/AddIns/ResOrg/ResOrgNETAddInToolWindows
 * 1.  Added file banners
 * 2.  Tidied up the code a little - removing unused capabilities
 * 
 * $Nokeywords: $
 *
 ************************************************************************/

// ResOrgNETAddInToolWindowsCtrl.cpp : Implementation of the CResOrgNETAddInToolWindowsCtrl ActiveX Control class.

#include "StdAfx.h"
#include "ResOrgNETAddInToolWindows.h"
#include "ResOrgNETAddInToolWindowsCtrl.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#endif


/////////////////////////////////////////////////////////////////////////////
// CResOrgNETAddInToolWindowsCtrl class

IMPLEMENT_DYNCREATE(CResOrgNETAddInToolWindowsCtrl, CResOrgNETAddInToolWindowsCtrl_BASE)


// Message map
BEGIN_MESSAGE_MAP(CResOrgNETAddInToolWindowsCtrl, CResOrgNETAddInToolWindowsCtrl_BASE)

	ON_OLEVERB(AFX_IDS_VERB_PROPERTIES, OnProperties)
	ON_WM_CREATE()
	ON_WM_SIZE()

END_MESSAGE_MAP()


// Dispatch map
BEGIN_DISPATCH_MAP(CResOrgNETAddInToolWindowsCtrl,		CResOrgNETAddInToolWindowsCtrl_BASE)

	DISP_FUNCTION_ID(CResOrgNETAddInToolWindowsCtrl,	"Initialise",	1,	Initialise,	VT_BOOL,	VTS_DISPATCH VTS_UI4)
	DISP_FUNCTION_ID(CResOrgNETAddInToolWindowsCtrl,	"Refresh",		2,	Refresh,	VT_EMPTY,	VTS_NONE)

END_DISPATCH_MAP()


// Event map
BEGIN_EVENT_MAP(CResOrgNETAddInToolWindowsCtrl, CResOrgNETAddInToolWindowsCtrl_BASE)
END_EVENT_MAP()


// Initialize class factory and guid
IMPLEMENT_OLECREATE_EX(CResOrgNETAddInToolWindowsCtrl, "RESORGNETADDINTO.ResOrgNETAddInToCtrl.1",
	0x7cfd71d, 0x3aea, 0x47db, 0x8f, 0x7b, 0xd4, 0x27, 0xa8, 0xcb, 0x8a, 0xaf)


// Type library ID and version
IMPLEMENT_OLETYPELIB(CResOrgNETAddInToolWindowsCtrl, _tlid, _wVerMajor, _wVerMinor)


// Interface IDs
const IID BASED_CODE IID_DResOrgNETAddInToolWindows =
		{ 0x7542A9D7, 0x23A4, 0x4ADD, { 0xBD, 0x8B, 0x9B, 0xF7, 0x6B, 0xBD, 0x82, 0xD6 } };

const IID BASED_CODE IID_DResOrgNETAddInToolWindowsEvents =
		{ 0x25FE1BE9, 0x9A00, 0x4259, { 0xAA, 0x6D, 0x84, 0xF1, 0xDC, 0xF0, 0x49, 0x13 } };


// Control type information
static const DWORD BASED_CODE _dwResOrgNETAddInToolWindowsOleMisc =
	OLEMISC_ACTIVATEWHENVISIBLE |
	OLEMISC_SETCLIENTSITEFIRST |
	OLEMISC_INSIDEOUT |
	OLEMISC_CANTLINKINSIDE |
	OLEMISC_RECOMPOSEONRESIZE;

IMPLEMENT_OLECTLTYPE(	CResOrgNETAddInToolWindowsCtrl,
						IDS_TOOLWIN,
						_dwResOrgNETAddInToolWindowsOleMisc)


/////////////////////////////////////////////////////////////////////////////
// CResOrgNETAddInToolWindowsCtrl construction/destruction

CResOrgNETAddInToolWindowsCtrl::CResOrgNETAddInToolWindowsCtrl(void)
{
	InitializeIIDs( &IID_DResOrgNETAddInToolWindows,
					&IID_DResOrgNETAddInToolWindowsEvents);

	m_hWndResOrg	= NULL;
}


CResOrgNETAddInToolWindowsCtrl::~CResOrgNETAddInToolWindowsCtrl(void)
{
}



/////////////////////////////////////////////////////////////////////////////
// CResOrgNETAddInToolWindowsCtrl virtual overrides

BOOL CResOrgNETAddInToolWindowsCtrl::PreTranslateMessage(MSG* pMsg)
{
	return CResOrgNETAddInToolWindowsCtrl_BASE::PreTranslateMessage(pMsg);
}


// CResOrgNETAddInToolWindowsCtrl::OnDraw - Drawing function
void CResOrgNETAddInToolWindowsCtrl::OnDraw(CDC* pDC,
											const CRect& rcBounds,
											const CRect& rcInvalid)
{
	UNREFERENCED_PARAMETER(pDC);
	UNREFERENCED_PARAMETER(rcBounds);
	UNREFERENCED_PARAMETER(rcInvalid);
}


// CResOrgNETAddInToolWindowsCtrl::DoPropExchange - Persistence support
void CResOrgNETAddInToolWindowsCtrl::DoPropExchange(CPropExchange* pPX)
{
	ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
	CResOrgNETAddInToolWindowsCtrl_BASE::DoPropExchange(pPX);

	// TODO: Call PX_ functions for each persistent custom property.
}


// Reset control to a default state
void CResOrgNETAddInToolWindowsCtrl::OnResetState(void)
{
	CResOrgNETAddInToolWindowsCtrl_BASE::OnResetState();  // Resets defaults found in DoPropExchange

	// TODO: Reset any other control state here.
}


/////////////////////////////////////////////////////////////////////////////
// CResOrgNETAddInToolWindowsCtrl operations
// (none)


/////////////////////////////////////////////////////////////////////////////
// CResOrgNETAddInToolWindowsCtrl IDispatch Interface Handlers

BOOL CResOrgNETAddInToolWindowsCtrl::Initialise(LPDISPATCH pApplication,
												unsigned long ulHWND)
{
	m_hWndResOrg = (HWND)ulHWND;

	ASSERT(::IsWindow(m_hWndResOrg) );

	if (m_pDTE == NULL)
	{
		pApplication->QueryInterface(__uuidof(EnvDTE::_DTE), (LPVOID*)&m_pDTE);

		return (m_pDTE != NULL);
	}
	return FALSE;
}


void CResOrgNETAddInToolWindowsCtrl::Refresh(void)
{
	m_ctrlMain.Refresh();
}


/////////////////////////////////////////////////////////////////////////////
// CResOrgNETAddInToolWindowsCtrl implementation

// Adds or removes system registry entries for CResOrgNETAddInToolWindowsCtrl
BOOL CResOrgNETAddInToolWindowsCtrl::CResOrgNETAddInToolWindowsCtrlFactory::UpdateRegistry(BOOL bRegister)
{
	// TODO: Verify that your control follows apartment-model threading rules.
	// Refer to MFC TechNote 64 for more information.
	// If your control does not conform to the apartment-model rules, then
	// you must modify the code below, changing the 6th parameter from
	// afxRegApartmentThreading to 0.

	if (bRegister)
	{
		return ::AfxOleRegisterControlClass(::AfxGetInstanceHandle(),
											m_clsid,
											m_lpszProgID,
											IDS_TOOLWIN,
											IDB_TOOLWIN,
											afxRegApartmentThreading,
											_dwResOrgNETAddInToolWindowsOleMisc,
											_tlid,
											_wVerMajor,
											_wVerMinor);
	}
	else
	{
		return AfxOleUnregisterClass(m_clsid, m_lpszProgID);
	}
}


/////////////////////////////////////////////////////////////////////////////
// CResOrgNETAddInToolWindowsCtrl message handlers

int CResOrgNETAddInToolWindowsCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CResOrgNETAddInToolWindowsCtrl_BASE::OnCreate(lpCreateStruct) == -1)
		return -1;

	CRect rectCtrl;
	GetClientRect(rectCtrl);

	DWORD dwStyle = WS_VISIBLE | WS_CHILD; //| LVS_REPORT;

	m_ctrlMain.Create(	NULL,
						_T("Main"),
						dwStyle,
						rectCtrl,
						this,
						0,
						NULL);

	ASSERT(m_pDTE != NULL);

	if (m_ctrlMain.Initialise(m_pDTE, m_hWndResOrg) )
	{
		m_ctrlMain.Refresh();
	}
	return 0;
}


void CResOrgNETAddInToolWindowsCtrl::OnSize(UINT nType, int cx, int cy)
{
	CResOrgNETAddInToolWindowsCtrl_BASE::OnSize(nType, cx, cy);

	CRect rectCtrl;
	GetClientRect(rectCtrl);

	m_ctrlMain.MoveWindow(rectCtrl);
}

⌨️ 快捷键说明

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