Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

206 lines
4.9 KiB

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1997-2001.
//
// File: Wiz97PPg.cpp
//
// Contents:
//
//----------------------------------------------------------------------------
// Wiz97PPg.cpp : implementation file
//
#include "stdafx.h"
#include "Wiz97PPg.h"
#ifdef _DEBUG
#ifndef ALPHA
#define new DEBUG_NEW
#endif
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CWizard97PropertyPage property page
IMPLEMENT_DYNCREATE(CWizard97PropertyPage, CPropertyPage)
CWizard97PropertyPage::CWizard97PropertyPage ()
: CPropertyPage (),
m_pWiz (0)
{
ASSERT (0); // default constructor - should never be called
}
CWizard97PropertyPage::CWizard97PropertyPage(UINT nIDTemplate) :
CPropertyPage(nIDTemplate),
m_pWiz (0)
{
//{{AFX_DATA_INIT(CWizard97PropertyPage)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
CWizard97PropertyPage::~CWizard97PropertyPage()
{
}
void CWizard97PropertyPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CWizard97PropertyPage)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CWizard97PropertyPage, CPropertyPage)
//{{AFX_MSG_MAP(CWizard97PropertyPage)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CWizard97PropertyPage message handlers
void CWizard97PropertyPage::InitWizard97(bool bHideHeader)
{
::ZeroMemory (&m_psp97, sizeof (PROPSHEETPAGE));
m_psp.dwFlags &= ~PSP_HASHELP;
memcpy (&m_psp97, &m_psp, m_psp.dwSize);
m_psp97.dwSize = sizeof (PROPSHEETPAGE);
if ( bHideHeader )
{
// for first and last page of the wizard
m_psp97.dwFlags |= PSP_HIDEHEADER;
}
else
{
// for intermediate pages
m_psp97.dwFlags |= PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
m_psp97.pszHeaderTitle = (LPCWSTR) m_szHeaderTitle;
m_psp97.pszHeaderSubTitle = (LPCWSTR) m_szHeaderSubTitle;
}
}
bool CWizard97PropertyPage::SetupFonts()
{
bool bReturn = false;
//
// Create the fonts we need based on the dialog font
//
NONCLIENTMETRICS ncm = {0};
ncm.cbSize = sizeof (ncm);
SystemParametersInfo (SPI_GETNONCLIENTMETRICS, 0, &ncm, 0);
LOGFONT BigBoldLogFont = ncm.lfMessageFont;
LOGFONT BoldLogFont = ncm.lfMessageFont;
//
// Create Big Bold Font and Bold Font
//
BigBoldLogFont.lfWeight = FW_BOLD;
BoldLogFont.lfWeight = FW_BOLD;
CString largeFontSizeString;
INT largeFontSize;
CString smallFontSizeString;
INT smallFontSize;
//
// Load size and name from resources, since these may change
// from locale to locale based on the size of the system font, etc.
//
if ( !::LoadString (AfxGetInstanceHandle (), IDS_LARGEFONTNAME,
BigBoldLogFont.lfFaceName, LF_FACESIZE) )
{
ASSERT (0);
lstrcpy (BigBoldLogFont.lfFaceName, L"Verdana");
}
if ( largeFontSizeString.LoadString (IDS_LARGEFONTSIZE) )
{
largeFontSize = wcstoul ((LPCWSTR) largeFontSizeString, NULL, 10);
}
else
{
ASSERT (0);
largeFontSize = 12;
}
if ( !::LoadString (AfxGetInstanceHandle (), IDS_SMALLFONTNAME,
BoldLogFont.lfFaceName, LF_FACESIZE) )
{
ASSERT (0);
lstrcpy (BoldLogFont.lfFaceName, L"Verdana");
}
if ( smallFontSizeString.LoadString (IDS_SMALLFONTSIZE) )
{
smallFontSize = wcstoul ((LPCWSTR) smallFontSizeString, NULL, 10);
}
else
{
ASSERT (0);
smallFontSize = 8;
}
CDC* pdc = GetDC ();
if ( pdc )
{
BigBoldLogFont.lfHeight = 0 - (pdc->GetDeviceCaps (LOGPIXELSY) * largeFontSize / 72);
BoldLogFont.lfHeight = 0 - (pdc->GetDeviceCaps (LOGPIXELSY) * smallFontSize / 72);
BOOL bBigBold = m_bigBoldFont.CreateFontIndirect (&BigBoldLogFont);
BOOL bBold = m_boldFont.CreateFontIndirect (&BoldLogFont);
ReleaseDC (pdc);
if ( bBigBold && bBold )
bReturn = true;
else
{
if ( bBold )
{
VERIFY (m_boldFont.DeleteObject());
}
if ( bBigBold )
{
VERIFY (m_bigBoldFont.DeleteObject());
}
}
}
return bReturn;
}
CFont& CWizard97PropertyPage::GetBoldFont()
{
return m_boldFont;
}
CFont& CWizard97PropertyPage::GetBigBoldFont()
{
return m_bigBoldFont;
}
BOOL CWizard97PropertyPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
LONG dwExStyle = GetWindowLong (GetParent ()->m_hWnd, GWL_EXSTYLE);
if ( dwExStyle & WS_EX_CONTEXTHELP )
{
dwExStyle &= ~WS_EX_CONTEXTHELP;
SetWindowLong (GetParent ()->m_hWnd, GWL_EXSTYLE, dwExStyle);
}
SetupFonts ();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}