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

📄 propicons.cpp

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

#include "stdafx.h"
#include "wisBarSetup.h"
#include "PropIcons.h"

#include "SetupDlg.h"
#include "commctrl.h"

//#include "..\\..\\TG\\INCLUDE\\tgetfile.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPropIcons 僾儘僷僥傿 儁乕僕

IMPLEMENT_DYNCREATE(CPropIcons, CPropertyPage)

CPropIcons::CPropIcons()
:	CPropertyPage(CPropIcons::IDD),
	m_pOpt(NULL),
	m_hBmp(NULL),
	m_iCur(CB_ERR)
{
	initialized = false;
	//{{AFX_DATA_INIT(CPropIcons)
	//}}AFX_DATA_INIT
}

CPropIcons::~CPropIcons()
{
	if ( m_hBmp != NULL ) {
		DeleteObject( m_hBmp );
	} 
}

void CPropIcons::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPropIcons)
	DDX_Control(pDX, IDC_SAMPLE, m_img);
	DDX_Control(pDX, IDC_CMB_ICONS, m_cmbIcons);
	DDX_Control(pDX, IDC_APPLYNOW, m_btnApplyNow);
	DDX_Control(pDX, IDC_ICON_FILE, m_edtIcon);
	DDX_Control(pDX, IDC_CHK_STDICON, m_btnStdIcon);
	DDX_Control(pDX, IDC_BR_ICON, m_btnIcon);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPropIcons, CPropertyPage)
	//{{AFX_MSG_MAP(CPropIcons)
	ON_CBN_SELCHANGE(IDC_CMB_ICONS, OnSelchangeCmbIcons)
	ON_BN_CLICKED(IDC_CHK_STDICON, OnChkStdicon)
	ON_BN_CLICKED(IDC_BR_ICON, OnBrIcon)
	ON_EN_CHANGE(IDC_ICON_FILE, OnChangeIconFile)
	ON_BN_CLICKED(IDC_APPLYNOW, OnApplynow)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

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

/////////////////////////////////////////////////////////////////////////////
// 弶婜張棟
BOOL CPropIcons::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();

	LPCTSTR	lpTitles[]	=	{	ICOSTR_TODAY,
								ICOSTR_LIST,
								ICOSTR_OK,
								ICOSTR_CLOSE,
								ICOSTR_CLOSE2,
								ICOSTR_MUTE,
								ICOSTR_NOTIFY,
								ICOSTR_OK2,
								ICOSTR_CONN,
								ICOSTR_DISC,
								ICOSTR_SYSTEM,
								NULL
							};

	// 柤徧儕僗僩嶌惉
	for ( int iIdx = 0 ; lpTitles[iIdx] != NULL ; iIdx++ ) {
		m_cmbIcons.AddString( lpTitles[iIdx] );
	}

	m_iCur = -1 ;
	m_cmbIcons.SetCurSel( 0 );

	resetItems();

	initialized = true;

	return( TRUE );
}

/////////////////////////////////////////////////////////////////////////////
// 徻嵶偺昞帵
void CPropIcons::OnSelchangeCmbIcons()
{
	int		iSel = m_cmbIcons.GetCurSel();

	// 擖椡撪梕傪斀塮
	if ( m_iCur != -1 ) {
		UpdateOne();
	}

	m_iCur = iSel ;
	if ( iSel == CB_ERR ) {
		return ;
	}

	// 昞帵傪僋儕傾
	m_btnStdIcon.SetCheck( 0 );
	m_edtIcon.SetWindowText( _T("") );
	if ( iSel == CB_ERR ) {
		if ( m_hBmp != NULL ) {
			m_img.SetBitmap( NULL );
			DeleteObject( m_hBmp );
			m_hBmp = NULL ;
		}
		return ;
	}


	if ( m_pOpt->ico[iSel].szIcon[0] == NULL ) {
		// 乽昗弨偺傾僀僐儞乿
		m_btnStdIcon.SetCheck( 1 );
		m_edtIcon.SetWindowText( _T("") );
		m_btnIcon.EnableWindow( FALSE );
	}
	else {
		// 僀儊乕僕丒僼傽僀儖
		m_btnStdIcon.SetCheck( 0 );
		m_edtIcon.SetWindowText( m_pOpt->ico[iSel].szIcon );
		m_btnIcon.EnableWindow();
	}

	// 僒儞僾儖丒僀儊乕僕傪昤夋
	DrawSample();
}

/////////////////////////////////////////////////////////////////////////////
// 妋掕
BOOL CPropIcons::OnApply()
{
	// 僇儗儞僩偺擖椡撪梕傪斀塮
	OnSelchangeCmbIcons();

	return CPropertyPage::OnApply();
}

/////////////////////////////////////////////////////////////////////////////
// 昗弨<->僇僗僞儉愗傝懼偊
void CPropIcons::OnChkStdicon() 
{
	if ( m_btnStdIcon.GetCheck() == 1 ) {
		m_edtIcon.EnableWindow( FALSE );
		m_btnIcon.EnableWindow( FALSE );
	}
	else {
		m_edtIcon.EnableWindow();
		m_btnIcon.EnableWindow();
	}

	// 僒儞僾儖丒僀儊乕僕傪昤夋
	DrawSample();
}

/////////////////////////////////////////////////////////////////////////////
// 僒儞僾儖丒僀儊乕僕昤夋
void CPropIcons::DrawSample()
{
	UINT	nResTbl[] =	{	IDB_TODAY, 
		                  IDB_LIST,
											IDB_OK,
											IDB_CLOSE,
											IDB_TAPCLOSE,
											IDB_MUTE,
											IDB_NOTIFY,
											IDB_TAP_OK,
											IDB_CONNECTED,
											IDB_DISCONNECTED,
											IDB_SYSTEM };

	// 昞帵傪僋儕傾
	if ( m_hBmp != NULL ) {
		m_img.SetBitmap( NULL );
		DeleteObject( m_hBmp );
		m_hBmp = NULL ;
	}
	int		iSel = m_cmbIcons.GetCurSel();
	if ( iSel == CB_ERR ) {
		return ;
	}

	if ( m_btnStdIcon.GetCheck() == 1 ) {
		// 乽昗弨偺傾僀僐儞乿
		m_hBmp = ::LoadBitmap( AfxGetInstanceHandle(),MAKEINTRESOURCE(nResTbl[iSel]) );
	}
	else {
		// 僀儊乕僕丒僼傽僀儖
		CString	strFile ;
		m_edtIcon.GetWindowText( strFile );
		m_hBmp = SHLoadDIBitmap( strFile );
	}
	m_img.SetBitmap( m_hBmp );
}

/////////////////////////////////////////////////////////////////////////////
// 僀儊乕僕丒僼傽僀儖嶲徠
void CPropIcons::OnBrIcon() 
{
	UINT		uIdx ;
	TCHAR		szFile[MAX_PATH];
	TCHAR		szExtName[8] = { _T("*.bmp") };
	TCHAR		szFileType[] = STR_BROWSE_BMP ;
	OPENFILENAME	of ;

	// 尰嵼偺愝掕抣
	m_edtIcon.GetWindowText( szFile,sizeof(szFile) );

	// 僼傽僀儖僞僀僾偺庢摼
	for ( uIdx=0 ; szFileType[uIdx] != 0x00 ; uIdx++ ) {
		if ( szFileType[uIdx] == TEXT('#') ) {
			szFileType[uIdx] = 0x00 ;
		}
	}

	memset( &of,0,sizeof(OPENFILENAME) );
	of.lStructSize	    = sizeof( OPENFILENAME );
	of.hwndOwner	    = m_hWnd ;
	of.lpstrFile	    = szFile ;
	of.lpstrInitialDir  = NULL;
	of.nMaxFile			= MAX_PATH ;

	of.lpstrDefExt  = szExtName ;
	of.Flags = OFN_HIDEREADONLY|OFN_LONGNAMES|OFN_FILEMUSTEXIST ;

	of.lpfnHook = NULL;
	of.lpstrTitle   = STR_BROWSE_ICON ;
	of.lpstrFilter	= szFileType ;

	if ( GetOpenFileName(&of) ) {
//	if ( tGetOpenFileName(&of) ) {
		m_edtIcon.SetWindowText( szFile );
		OnChangeIconFile();
	}
}

/////////////////////////////////////////////////////////////////////////////
// 僀儊乕僕丒僼傽僀儖偑曄峏偝傟偨偐傕
void CPropIcons::OnChangeIconFile()
{
	TCHAR	szFile[MAX_PATH+1];

	// 攚宨夋憸偼偁傞丠
	m_edtIcon.GetWindowText( szFile,sizeof(szFile) );
	if ( GetFileAttributes(szFile) != 0xFFFFFFFF ) {
		DrawSample();
	}
}

/////////////////////////////////////////////////////////////////////////////
// 愝掕傪峏怴
void CPropIcons::UpdateOne() 
{
	int	iSel = m_cmbIcons.GetCurSel();

	if ( m_iCur == CB_ERR ) {
		return ;
	}

	if ( m_btnStdIcon.GetCheck() == 1 ) {
		// 昗弨傾僀僐儞
		m_pOpt->ico[m_iCur].szIcon[0] = NULL ;
	}
	else {
		m_edtIcon.GetWindowText( m_pOpt->ico[m_iCur].szIcon,MAX_PATH );
	}
}

/////////////////////////////////////////////////////////////////////////////
// 揔梡
void CPropIcons::OnApplynow() 
{
	CSetupDlg*	pParent = (CSetupDlg*)GetParent();

	OnApply();

	pParent->ApplyNow();
}

void CPropIcons::resetItems()
{
	OnSelchangeCmbIcons();
}

⌨️ 快捷键说明

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