📄 resorgaboutbox.cpp
字号:
/************************************************************************
*
* Resource ID Organiser Core Library
*
* (c) Copyright 2000-2004 by Riverblade Limited (UK). All rights reserved.
*
************************************************************************
*
* Description : CResOrgAboutBox - "About Box" dialog class
*
* Compiler : Microsoft Visual C++ 6.0, Service Pack 3 or later
* Microsoft Visual C++ .NET 2003
*
* Target
* Environment : Windows 98/NT/2000/XP
*
* NOTE:
*
* This software is provided "as is". All title and copyrights in and
* to the software, including but not limited to any images, text etc.
* etc. incorporated into it, are the property of Anna-Jayne Metcalfe
* and Riverblade Limited, except where acknowledged otherwise.
*
* Your may freely use this code in your own products, PROVIDED
* this notice is not removed or modified.
*
* Please visit http://www.riverblade.co.uk/products/resorg for
* support and updates
*
************************************************************************
*
* MODIFICATION HISTORY:
*
* This is a controlled document. See project configuration
* control tool for latest version and full version history.
*
* $Archive: /Projects/AddIns/ResOrg/ResOrgCore/ResOrgAboutBox.cpp $
* $Revision: 24 $
* $Date: 13/12/04 3:50 $
* $Author: Anna $
*
* $History: ResOrgAboutBox.cpp $
*
* ***************** Version 24 *****************
* User: Anna Date: 13/12/04 Time: 3:50
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* 1. Added company logo and legal warning
* 2. Updated file banners
*
* ***************** Version 23 *****************
* User: Anna Date: 10/05/04 Time: 20:21
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Clicking on the piccy now opens the "About Me" page on my site...
*
* ***************** Version 22 *****************
* User: Anna Date: 15/04/03 Time: 20:38
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* 1. Removed unnecessary file guards (#pragma once works well enough)
* 2. Updated file banners
*
* ***************** Version 21 *****************
* User: Anna Date: 19/03/03 Time: 18:41
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Banner corrections only
*
* ***************** Version 20 *****************
* User: Anna Date: 7/03/03 Time: 11:58
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Minor corrections
*
* ***************** Version 19 *****************
* User: Anna Date: 2/01/03 Time: 0:16
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* 1. Improvements to disclaimer and expiry tex using CNGHtmlStaticCtrl
* 2. Added a mugshot (just call me a vain cow, OK?)
*
* ***************** Version 18 *****************
* User: Anna Date: 3/12/02 Time: 20:30
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Made buttons XP style if a theme is active
*
* ***************** Version 17 *****************
* User: Anna Date: 25/11/02 Time: 20:27
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* 1. Updated website address on file banner
* 2. Website/email addresses are now obtained from the Options object
* rather than being hard-coded
*
* ***************** Version 16 *****************
* User: Anna Date: 22/10/02 Time: 14:17
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Corrected email address on hyperlink
*
* ***************** Version 15 *****************
* User: Anna Date: 22/10/02 Time: 13:24
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Changed name/mail address (at last!)
*
* ***************** Version 14 *****************
* User: Andy Date: 14/06/02 Time: 16:42
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Made the About Box slightly more colourful...
*
* ***************** Version 13 *****************
* User: Andy Date: 12/06/02 Time: 22:50
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Replaced CNGModulesListCtrl with CResOrgModulesListCtrl
*
* ***************** Version 12 *****************
* User: Andy Date: 12/06/02 Time: 15:44
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Added CResOrgAboutBox::m_pModuleState in order to configure the "Loaded
* Modules" control in the add-in
*
* ***************** Version 11 *****************
* User: Andy Date: 11/06/02 Time: 23:04
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* The AboutBox is now expandable - it now includes a list of the loaded
* modules
*
* ***************** Version 10 *****************
* User: Andy Date: 11/06/02 Time: 11:12
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* CResOrgAboutBox now picks up the application name dynamically
*
* ***************** Version 9 *****************
* User: Andy Date: 7/06/02 Time: 17:04
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Renamed the ResOrgUtils module to ResOrgCore. Updated file banners
* accordingly
*
* ***************** Version 8 *****************
* User: Andy Date: 7/06/02 Time: 9:36
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* 1. The Splash Screen and About Box now display the target environment
* (Visual C++ 5.0/6.0 or Visual C++.NET)
* 2. Updated file banners
*
* ***************** Version 7 *****************
* User: Andy Date: 11/10/01 Time: 12:13p
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* Improved the splash screen and about box
*
* ***************** Version 6 *****************
* User: Andy Date: 8/06/01 Time: 20:24
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* Corrected the email URL (it was adding an extra "mailto" to the URL)
*
* ***************** Version 5 *****************
* User: Andy Date: 5/04/01 Time: 6:11
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* Added check for version expiry (conditional compilation)
*
* ***************** Version 4 *****************
* User: Andy Date: 29/11/00 Time: 19:00
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* Legal copyright string is now assumed to be complete, rather than
* adding company name on automatically
*
* ***************** Version 3 *****************
* User: Andy Date: 29/11/00 Time: 18:38
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* Added file banners
*
* $Nokeywords: $
*
************************************************************************/
#include "StdAfx.h"
#include "ResOrgCore_Priv.h"
#include "ResOrgAboutBox.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CResOrgAboutBox dialog
#define COLOUR_ABOUTBOX_BACKGROUND RGB(255, 255, 204)
#define COLOUR_ABOUTBOX_TITLE RGB(0, 0, 200)
#define COLOUR_ABOUTBOX_EXPIRY RGB(200, 0, 0)
#define COLOUR_ABOUTBOX_OK_BTN_BKND RGB(0, 128, 255)
#define COLOUR_ABOUTBOX_EXPAND_BTN_BKND RGB(0, 160, 0)
#define COLOUR_ABOUTBOX_OK_BTN_FGND RGB(255, 255, 255)
#define COLOUR_ABOUTBOX_EXPAND_BTN_FGND COLOUR_ABOUTBOX_OK_BTN_FGND
CResOrgAboutBox::CResOrgAboutBox(CWnd* pParent /*=NULL*/)
: CResOrgAboutBox_BASE(CResOrgAboutBox::IDD, pParent)
{
m_sTitle = _T("");
m_sPlatform.LoadString(IDS_RESORG_PLATFORM);
m_sFileVersion = _T("");
m_sCopyright = _T("");
m_sWebsite = Options.GetWebURL();
m_sMailTo = Options.GetEmailURL();
m_sLegalWarning.LoadString(IDS_PRODUCT_LEGAL_WARNING);
m_rectAuthorImage.SetRectEmpty();
m_rectCompanyLogo.SetRectEmpty();
m_hLinkCursor = NULL;
#if _MSC_VER >= 1300
m_sPlatform += _T(" .NET");
#else
m_sPlatform += _T(" 5.0/6.0");
#endif
m_pModuleState = NULL;
}
CResOrgAboutBox::~CResOrgAboutBox(void)
{
if (m_hLinkCursor)
{
DestroyCursor(m_hLinkCursor);
}
}
void CResOrgAboutBox::DoDataExchange(CDataExchange* pDX)
{
CResOrgAboutBox_BASE::DoDataExchange(pDX);
DDX_Text(pDX, IDC_RESORG_TITLE, m_sTitle);
DDX_Text(pDX, IDC_RESORG_PLATFORM, m_sPlatform);
DDX_Text(pDX, IDC_RESORG_VERSION, m_sFileVersion);
DDX_Text(pDX, IDC_RESORG_COPYRIGHT, m_sCopyright);
DDX_Text(pDX, IDC_PRODUCT_LEGAL_WARNING, m_sLegalWarning);
DDX_Control(pDX, IDC_RESORG_DISCLAIMER, m_ctrlDisclaimer);
DDX_Text(pDX, IDC_RESORG_WEBSITE, m_sWebsite);
DDX_Control(pDX, IDC_RESORG_WEBSITE, m_ctrlWebsite);
DDX_Text(pDX, IDC_RESORG_MAILTO, m_sMailTo);
DDX_Control(pDX, IDC_RESORG_MAILTO, m_ctrlEmail);
DDX_Control(pDX, IDC_RESORG_EXPIRY, m_ctrlExpiry);
DDX_Control(pDX, IDOK, m_ctrlOkButton);
DDX_Control(pDX, IDC_RESORG_ABOUTBOX_EXPAND, m_ctrlExpandButton);
DDX_Control(pDX, IDC_RESORG_ABOUTBOX_MODULES, m_ctrlModules);
}
BEGIN_MESSAGE_MAP(CResOrgAboutBox, CResOrgAboutBox_BASE)
ON_WM_CTLCOLOR()
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONDOWN()
//ON_WM_PAINT()
ON_BN_CLICKED( IDC_RESORG_ABOUTBOX_EXPAND, OnClickedExpand)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CResOrgAboutBox overrides
/******************************************************************************
* Called when the dialog is created
*
******************************************************************************/
BOOL CResOrgAboutBox::OnInitDialog(void)
{
CResOrgAboutBox_BASE::OnInitDialog(); // returns TRUE unless you set the focus to a control
// Do this now because it could cause a noticeable delay otherwise
m_ctrlModules.Initialise(m_pModuleState);
m_ctrlModules.SetBkColor(COLOUR_ABOUTBOX_BACKGROUND);
m_ctrlModules.SetTextBkColor(COLOUR_ABOUTBOX_BACKGROUND);
m_ctrlModules.Refresh();
CWnd* pPiccy = GetDlgItem(IDC_RESORG_ABOUTBOX_PIC);
ASSERT(NULL != pPiccy);
if (NULL != pPiccy)
{
pPiccy->GetClientRect(&m_rectAuthorImage);
pPiccy->ClientToScreen(&m_rectAuthorImage);
ScreenToClient(&m_rectAuthorImage);
}
CWnd* pLogo = GetDlgItem(IDC_COMPANY_LOGO);
ASSERT(NULL != pLogo);
if (NULL != pLogo)
{
pLogo->GetClientRect(&m_rectCompanyLogo);
pLogo->ClientToScreen(&m_rectCompanyLogo);
ScreenToClient(&m_rectCompanyLogo);
}
// Set the dialog caption (this is necessary because the
// VC.NET build has a different application name)
CString sCaption, sFmt;
GetWindowText(sFmt);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -