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

📄 fontseldlg.cpp

📁 WinCE下绝好的工具条软件
💻 CPP
字号:
// FontSelDlg.cpp : 僀儞僾儕儊儞僥乕僔儑儞 僼傽僀儖
//

#include "stdafx.h"
#include "wisbarsetup.h"
#include "FontSelDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
struct {
	int	iPoint ;
	int	iSize ;
} tblSizes[] =	{	
	 { 6, -9 },
	 { 7, -10  },
	 {	8, -11	},
	 {	9, -12	},
	 {	10,-13	},
	 {	11,-15	},
	 {	12,-16	},
	 {	14,-19	},
	 {	16,-21	},
	 {	20,-27	},
	 {	24,-32	},
	 {	28,-37	},
	 {	36,-48	},
	 {	0,0		  }
};
/////////////////////////////////////////////////////////////////////////////
// CFontSelDlg 僟僀傾儘僌
CFontSelDlg::CFontSelDlg(CWnd* pParent /*=NULL*/)
:	CDialog(CFontSelDlg::IDD, pParent),
	m_iSize(-12),
	m_strFont(_T("Tahoma"))
{
	//{{AFX_DATA_INIT(CFontSelDlg)
	m_bBold = FALSE;
	m_bItalic = FALSE;
	//}}AFX_DATA_INIT
}


void CFontSelDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFontSelDlg)
	DDX_Control(pDX, IDC_BTNCOLOR, m_btnColor);
	DDX_Control(pDX, IDC_FONTSIZE, m_cmbSize);
	DDX_Control(pDX, IDC_FONT, m_cmbFont);
	DDX_Check(pDX, IDC_BOLD, m_bBold);
	DDX_Check(pDX, IDC_ITALIC, m_bItalic);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFontSelDlg, CDialog)
	//{{AFX_MSG_MAP(CFontSelDlg)
	ON_BN_CLICKED(IDC_BTNCOLOR, OnBtncolor)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFontSelDlg 儊僢僙乕僕 僴儞僪儔

/////////////////////////////////////////////////////////////////////////////
// 弶婜張棟
BOOL CFontSelDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	int		iSel = 0 ;

	// 僼僅儞僩傪楍嫇
	HDC	hDC = ::GetDC( m_hWnd );
	EnumFontFamilies( hDC,NULL,(FONTENUMPROC)EnumFontProc,(LPARAM)&m_cmbFont );
	::ReleaseDC( m_hWnd,hDC );
	if ( m_strFont != _T("") ) {
		iSel = m_cmbFont.FindStringExact( -1,m_strFont );
		if ( iSel == CB_ERR ) {
			iSel = 0 ;
		}
	}
	m_cmbFont.SetCurSel( iSel );

	// 僒僀僘丒儕僗僩嶌惉
	CString	strBuf ;
	iSel = 0 ;
	for ( int iIdx = 0 ; tblSizes[iIdx].iPoint != 0 ; iIdx++ ) {
		strBuf.Format( _T("%d"),tblSizes[iIdx].iPoint );
		m_cmbSize.AddString( strBuf );
		if ( tblSizes[iIdx].iSize == m_iSize ) {
			iSel = iIdx ;
		}
	}
	m_cmbSize.SetCurSel( iSel );

	return( TRUE );
}

/////////////////////////////////////////////////////////////////////////////
// 僼僅儞僩楍嫇僐乕儖僶僢僋
int CALLBACK CFontSelDlg::EnumFontProc( ENUMLOGFONT *lpelfe,TEXTMETRIC *lpntme,int iFontType,LPARAM lParam )
{
	// 廲彂偒丄僾儘億乕僔儑僫儖偼彍奜
//	if ( (lpelfe->elfLogFont.lfFaceName[0] == TEXT('@')) ||
//	     (lpelfe->elfLogFont.lfCharSet != SHIFTJIS_CHARSET) ) {
	if ( lpelfe->elfLogFont.lfFaceName[0] == TEXT('@') ) {
		return( TRUE );
	}

	CComboBox*	pCmb = (CComboBox*)lParam ;
	
	// 僼僅儞僩柤傪楍嫇
	pCmb->AddString( lpelfe->elfLogFont.lfFaceName );

	return( TRUE );
}

/////////////////////////////////////////////////////////////////////////////
// 妋掕
void CFontSelDlg::OnOK() 
{
	m_cmbFont.GetWindowText( m_strFont );
	m_iSize = tblSizes[m_cmbSize.GetCurSel()].iSize ;

	CDialog::OnOK();
}

/////////////////////////////////////////////////////////////////////////////
// SelectColor - Allows the user to select the font color
void CFontSelDlg::SelectColor(COLORREF &cr)
{
	CHOOSECOLOR	cc ;
	COLORREF	rgcrCustom[16];
	ZeroMemory( &cc,sizeof(cc) );
	memset( rgcrCustom,0xff,sizeof(rgcrCustom) );

	cc.lStructSize = sizeof(cc);
	cc.hwndOwner = m_hWnd ;
	cc.Flags = CC_RGBINIT|CC_SOLIDCOLOR ;
	cc.lpCustColors = rgcrCustom ;
	cc.rgbResult = cr ;

	if ( !ChooseColor(&cc) ) {
		return ;
	}

	cr = cc.rgbResult ;
}
void CFontSelDlg::OnBtncolor() 
{
	SelectColor(m_Color);
}

⌨️ 快捷键说明

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