📄 renumwizbasevaluespage.cpp
字号:
/************************************************************************
*
* Resource ID Organiser Utility Library
*
* (c) Copyright 2000 by Andy Metcalfe (andy.metcalfe@lineone.net)
* All rights reserved.
*
************************************************************************
*
* Filename : RenumWizBaseValuesPage.cpp
*
* Description : CRenumWizBaseValuesPage - Symbol Renumbering Wizard
* "Base Values" page class
*
*
* Compiler : Microsoft Visual C++ 6.0, Service Pack 3 or 4
*
* Target
* Environment : Windows 98/NT
*
* 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 Andy 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.resorg.co.uk 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/ResOrgUtils/RenumWizBaseValuesPage.cpp $
* $Revision: 4 $
* $Date: 4/05/01 22:37 $
* $Author: Andy $
*
* $History: RenumWizBaseValuesPage.cpp $
*
* ***************** Version 4 *****************
* User: Andy Date: 4/05/01 Time: 22:37
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* Implemented resizing
*
* ***************** Version 3 *****************
* User: Andy Date: 21/04/01 Time: 7:20
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* 1. Added a subtitle to the page
* 2. Integrated CRenumWizEngine
* 3. Integrated to "Options" and "Symbol Selection" pages
*
* ***************** Version 2 *****************
* User: Andy Date: 29/11/00 Time: 18:37
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* Added file banners
*
* $Nokeywords: $
*
************************************************************************/
// RenumWizBaseValuesPage.cpp : implementation file
//
#include "StdAfx.h"
#include <math.h>
#include "ResOrgUtils_Res.h"
#include "RenumWizCompletionPage.h"
#include "RenumWizBaseValuesPage.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CRenumWizBaseValuesPage dialog
CRenumWizBaseValuesPage::CRenumWizBaseValuesPage(void)
: CRenumWizBaseValuesPage_BASE( CRenumWizBaseValuesPage::IDD,
IDS_RENUMWIZ,
IDS_RENUMWIZ_BASE_VALUES_TITLE,
IDS_RENUMWIZ_BASE_VALUES_SUBTITLE)
{
//{{AFX_DATA_INIT(CRenumWizBaseValuesPage)
m_uBaseCommand = 0;
m_uBaseControl = 0;
m_uBaseResource = 0;
m_sResources = _T("");
m_sControls = _T("");
m_sCommands = _T("");
//}}AFX_DATA_INIT
}
void CRenumWizBaseValuesPage::DoDataExchange(CDataExchange* pDX)
{
CRenumWizBaseValuesPage_BASE::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRenumWizBaseValuesPage)
DDX_Text(pDX, IDC_SYM_BASE_RESOURCE, m_uBaseResource);
DDV_MinMaxUInt(pDX, m_uBaseResource, 1, 28671);
DDX_Text(pDX, IDC_SYM_BASE_CONTROLS, m_uBaseControl);
DDV_MinMaxUInt(pDX, m_uBaseControl, 8, 28671);
DDX_Text(pDX, IDC_SYM_BASE_COMMANDS, m_uBaseCommand);
DDV_MinMaxUInt(pDX, m_uBaseCommand, 32768, 57343);
DDX_Text(pDX, IDC_SYM_RESOURCES, m_sResources);
DDX_Text(pDX, IDC_SYM_CONTROLS, m_sControls);
DDX_Text(pDX, IDC_SYM_COMMANDS, m_sCommands);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRenumWizBaseValuesPage, CRenumWizBaseValuesPage_BASE)
//{{AFX_MSG_MAP(CRenumWizBaseValuesPage)
ON_COMMAND( IDC_SYM_BASE_RESOURCE, OnCmdBaseResource)
ON_BN_CLICKED( IDC_RENUMWIZ_RESET, OnClickedReset)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRenumWizWafflePage overrides
BOOL CRenumWizBaseValuesPage::OnInitDialog(void)
{
CRenumWizBaseValuesPage_BASE::OnInitDialog();
if (IsResizeable())
{
m_Resizer.Add( IDC_RENUMWIZ_CAPTION, 0, 0, 100, 0);
m_Resizer.Add( IDC_SYM_BASE_RESOURCE_CAPTION, 50, 20, 0, 0);
m_Resizer.Add( IDC_SYM_BASE_RESOURCE, 50, 20, 0, 0);
m_Resizer.Add( IDC_SYM_RESOURCES, 50, 20, 0, 0);
m_Resizer.Add( IDC_SYM_BASE_CONTROLS_CAPTION, 50, 40, 0, 0);
m_Resizer.Add( IDC_SYM_BASE_CONTROLS, 50, 40, 0, 0);
m_Resizer.Add( IDC_SYM_CONTROLS, 50, 40, 0, 0);
m_Resizer.Add( IDC_SYM_BASE_COMMANDS_CAPTION, 50, 60, 0, 0);
m_Resizer.Add( IDC_SYM_BASE_COMMANDS, 50, 60, 0, 0);
m_Resizer.Add( IDC_SYM_COMMANDS, 50, 60, 0, 0);
m_Resizer.Add( IDC_RENUMWIZ_RESET_CAPTION, 50, 80, 0, 0);
m_Resizer.Add( IDC_RENUMWIZ_RESET, 50, 80, 0, 0);
m_Resizer.Add( IDC_RENUMWIZ_RESET_CAPTION2, 50, 80, 0, 0);
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
LRESULT CRenumWizBaseValuesPage::OnWizardBack(void)
{
LRESULT lPageID = -1;
switch (m_pEngine->m_eSymbolSelection)
{
case RENUMWIZ_ALL_SYMBOLS: // All symbols
case RENUMWIZ_CONFLICTING_SYMBOLS:
lPageID = IDD_RENUMWIZ_OPTIONS_PAGE;
break;
case RENUMWIZ_SELECTED_SYMBOLS: // Selected symbols
lPageID = IDD_RENUMWIZ_SELECT_SYMBOLS_PAGE;
break;
default:
ASSERT(FALSE);
break;
}
return lPageID;
}
BOOL CRenumWizBaseValuesPage::OnSetActive(void)
{
if (!IsInitialising() )
{
if (NULL != m_pEngine)
{
m_uBaseCommand = m_pEngine->m_uBaseCommand;
m_uBaseControl = m_pEngine->m_uBaseControl;
m_uBaseResource = m_pEngine->m_uBaseResource;
UpdateData(FALSE);
}
if (0 == m_uBaseCommand)
{
OnClickedReset();
}
}
return TRUE;
}
BOOL CRenumWizBaseValuesPage::OnKillActive(void)
{
if (!IsInitialising() )
{
if (NULL != m_pEngine)
{
m_pEngine->m_uBaseCommand = m_uBaseCommand;
m_pEngine->m_uBaseControl = m_uBaseControl;
m_pEngine->m_uBaseResource = m_uBaseResource;
}
}
return TRUE;
}
LRESULT CRenumWizBaseValuesPage::OnWizardNext(void)
{
return IDD_RENUMWIZ_COMPLETION_PAGE;
}
/////////////////////////////////////////////////////////////////////////////
// CRenumWizBaseValuesPage message handlers
void CRenumWizBaseValuesPage::OnCmdBaseResource(void)
{
return;
m_uBaseControl = m_uBaseResource + 200;
m_uBaseCommand = m_uBaseResource + 20000;
UpdateData(FALSE);
}
void CRenumWizBaseValuesPage::OnClickedReset(void)
{
if ( (NULL != m_pEngine) && (NULL != m_pEngine->m_pResourceSymbolBuffer) )
{
CResourceSymbolCounts Info;
m_pEngine->m_pResourceSymbolBuffer->GetSymbolCount(Info);
// Update summary text
m_sResources.Format(IDS_SYM_RESOURCES, Info.m_nResources);
m_sControls.Format(IDS_SYM_CONTROLS, Info.m_nControls);
m_sCommands.Format(IDS_SYM_COMMANDS, Info.m_nCommands);
m_pEngine->m_pResourceSymbolBuffer->CalculateBaseValues(m_uBaseResource,
m_uBaseCommand);
// Validate against defined ranges, just to be sure....
// This is friggy code, but it'll do for now
/*
if (m_uBaseResource < 100)
{
m_uBaseResource = 1000;
}
else if (m_uBaseResource > 28671)
{
m_uBaseResource = 28000;
}
if (m_uBaseCommand < 32768)
{
m_uBaseCommand = 33000;
}
else if (m_uBaseCommand > 57343)
{
m_uBaseCommand = 56000;
}
*/
int nControlOffset = (int)(100 * ::ceil( (double)Info.m_nResources / 100.0) );
m_uBaseControl = m_uBaseResource + nControlOffset;
UpdateData(FALSE);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -