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

📄 propimages.cpp

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

#include "stdafx.h"
#include "wisBarSetup.h"
#include "PropImages.h"
#include "wisbardef.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

/////////////////////////////////////////////////////////////////////////////
// CPropImages 僾儘僷僥傿 儁乕僕

IMPLEMENT_DYNCREATE(CPropImages, CPropertyPage)

CPropImages::CPropImages()
:	CPropertyPage(CPropImages::IDD),
	m_pOpt(NULL)
{
	//{{AFX_DATA_INIT(CPropImages)
	//}}AFX_DATA_INIT
	initialized = false;
}

CPropImages::~CPropImages()
{
}

void CPropImages::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPropImages)
	DDX_Control(pDX, IDC_2002_Style, m_btn2002Style);
	DDX_Control(pDX, IDC_CHK_SECURE, m_btnShift);
	DDX_Control(pDX, IDC_APPLYNOW, m_btnApplyNow);
	DDX_Control(pDX, IDC_LOGO, m_edtLogo);
	DDX_Control(pDX, IDC_CHK_STDLOGO, m_btnStdLogo);
	DDX_Control(pDX, IDC_CHK_LOGO, m_btnLogo);
	DDX_Control(pDX, IDC_CHK_BG, m_btnBG);
	DDX_Control(pDX, IDC_BR_LOGO, m_btnBrLogo);
	DDX_Control(pDX, IDC_BR_BG, m_btnBrBG);
	DDX_Control(pDX, IDC_CHK_GRADIENT, m_btnGradient);
	DDX_Control(pDX, IDC_CHK_2002, m_btn2002Colors);
	DDX_Control(pDX, IDC_STARTCR, m_btnStartCr);
	DDX_Control(pDX, IDC_ENDCR, m_btnEndCr);
	DDX_Control(pDX, IDC_BG, m_edtBG);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPropImages, CPropertyPage)
	//{{AFX_MSG_MAP(CPropImages)
	ON_BN_CLICKED(IDC_CHK_LOGO, OnChkLogo)
	ON_BN_CLICKED(IDC_CHK_BG, OnChkBg)
	ON_BN_CLICKED(IDC_BR_BG, OnBrBg)
	ON_BN_CLICKED(IDC_BR_LOGO, OnBrLogo)
	ON_BN_CLICKED(IDC_CHK_STDLOGO, OnChkStdlogo)
	ON_BN_CLICKED(IDC_APPLYNOW, OnApplynow)
	ON_BN_CLICKED(IDC_CHK_SECURE, OnChkSecure)
	ON_BN_CLICKED(IDC_CHK_GRADIENT, OnChkGradient)
	ON_BN_CLICKED(IDC_STARTCR, OnStartcr)
	ON_BN_CLICKED(IDC_ENDCR, OnEndcr)
	ON_BN_CLICKED(IDC_CHK_2002, OnChk2002)
	ON_BN_CLICKED(IDC_2002_Style, On2002Style)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

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

/////////////////////////////////////////////////////////////////////////////
// 儃僞儞偺桳岠/柍岠惂屼乮儘僑乯
void CPropImages::OnChkLogo() 
{
	if ( m_btnLogo.GetCheck() == 1 ) {
		m_pOpt->bLogo = TRUE ;
		m_btnStdLogo.EnableWindow();
		//OnChkBg();
	}
	else {
		m_pOpt->bLogo = FALSE ;
		m_btnStdLogo.EnableWindow( FALSE );
		m_edtLogo.EnableWindow( FALSE );
		m_btnBrLogo.EnableWindow( FALSE );
	}	
}

/////////////////////////////////////////////////////////////////////////////
// 儃僞儞偺桳岠/柍岠惂屼乮儘僑丗昗弨乯
void CPropImages::OnChkStdlogo() 
{
	if ( m_btnStdLogo.GetCheck() == 1 ) {
		m_edtLogo.EnableWindow( FALSE );
		m_btnBrLogo.EnableWindow( FALSE );
	}
	else {
		m_edtLogo.EnableWindow();
		m_btnBrLogo.EnableWindow();
	}
}

/////////////////////////////////////////////////////////////////////////////
// 儃僞儞偺桳岠/柍岠惂屼乮攚宨夋憸乯
void CPropImages::OnChkBg() 
{
	if ( m_btnBG.GetCheck() == 1 ) {
		m_edtBG.EnableWindow();
		m_btnBrBG.EnableWindow();

		m_btn2002Colors.EnableWindow( FALSE );
		m_btn2002Style.EnableWindow( FALSE );
		m_btnStartCr.EnableWindow( FALSE );
		m_btnEndCr.EnableWindow( FALSE );
	}
	else if( m_pOpt->bGradient ) {
		m_edtBG.EnableWindow( FALSE );
		m_btnBrBG.EnableWindow( FALSE );

		m_btn2002Colors.EnableWindow();
		m_btn2002Style.EnableWindow();
		m_btnStartCr.EnableWindow( m_btnGradient.GetCheck() && !m_btn2002Colors.GetCheck() );
		m_btnEndCr.EnableWindow( m_btnGradient.GetCheck() && !m_btn2002Colors.GetCheck() );
	}
	else {
	}
}

/////////////////////////////////////////////////////////////////////////////
// 揔梡
BOOL CPropImages::OnApply() 
{
	TCHAR	szFile[MAX_PATH+1];

	// 攚宨夋憸
	if ( m_btnBG.GetCheck() == 1 ) {
		m_edtBG.GetWindowText( szFile,sizeof(szFile) );
		if ( GetFileAttributes(szFile) == 0xFFFFFFFF ) {
			MessageBox( STR_NEXIST_BG,STR_ERR_TITLE,MB_OK|MB_ICONHAND );
			return( 0 );
		}
		lstrcpy( m_pOpt->szBG,szFile );

		m_pOpt->bGradient = FALSE;
	}
	else {
		m_pOpt->szBG[0] = NULL ;
		m_pOpt->bGradient = m_btnGradient.GetCheck();
	}

	m_pOpt->b2002Theme = m_btn2002Colors.GetCheck();

	// 儘僑昞帵
	if ( m_btnLogo.GetCheck() == 1 ) {
		m_pOpt->bLogo = TRUE ;
		if ( m_btnShift.GetCheck() == 0 ) {
			m_pOpt->bShifted = FALSE ;
			if ( m_btnStdLogo.GetCheck() == 1 ) {
				m_pOpt->szLogo[0] = NULL ;
			}
			else {
				m_edtLogo.GetWindowText( szFile,sizeof(szFile) );
				if ( GetFileAttributes(szFile) == 0xFFFFFFFF ) {
					MessageBox( STR_NEXIST_LOGO,STR_ERR_TITLE,MB_OK|MB_ICONHAND );
					return( 0 );
				}
				lstrcpy( m_pOpt->szLogo,szFile );
			}
		}
		else {
			m_pOpt->bShifted = TRUE ;
			m_pOpt->szLogo[0] = NULL ;
		}
	}
	else {
		m_pOpt->bLogo = FALSE ;
		m_pOpt->szLogo[0] = NULL ;
	}

	return CPropertyPage::OnApply();
}

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

	resetItems();

	initialized = true;
	return( TRUE );
}

/////////////////////////////////////////////////////////////////////////////
// 僀儊乕僕僼傽僀儖偺嶲徠乮攚宨夋憸乯
void CPropImages::OnBrBg() 
{
	BrowseBitmap( m_edtBG,STR_BROWSE_BG );
}

/////////////////////////////////////////////////////////////////////////////
// 僀儊乕僕僼傽僀儖偺嶲徠乮儘僑乯
void CPropImages::OnBrLogo() 
{
	BrowseBitmap( m_edtLogo,STR_BROWSE_LOGO );
}

/////////////////////////////////////////////////////////////////////////////
// 僀儊乕僕僼傽僀儖偺嶲徠
void CPropImages::BrowseBitmap(CEdit &edt,LPCTSTR lpTitle)
{
	UINT		uIdx ;
	TCHAR		szFile[MAX_PATH];
	TCHAR		szExtName[8] = { _T("*.bmp") };
	TCHAR		szFileType[] = STR_BROWSE_BMP ;
	OPENFILENAME	of ;

	// 尰嵼偺愝掕抣
	edt.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   = lpTitle ;
	of.lpstrFilter	= szFileType ;

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

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

	OnApply();

	pParent->ApplyNow();
}

/////////////////////////////////////////////////////////////////////////////
// 僥僉僗僩丒僔僼僩
void CPropImages::OnChkSecure() 
{
	if ( m_btnShift.GetCheck() == 1 ) {
		m_btnStdLogo.SetCheck( 0 );
		m_btnStdLogo.EnableWindow( FALSE );
		m_edtLogo.EnableWindow( FALSE );
		m_btnBrLogo.EnableWindow( FALSE );
	}
	else {
		m_btnStdLogo.EnableWindow( TRUE );
		m_edtLogo.EnableWindow( TRUE );
		m_btnBrLogo.EnableWindow( TRUE );
	}
}

void CPropImages::OnChkGradient() 
{
	if ( m_btnGradient.GetCheck() ) {
		m_edtBG.EnableWindow( FALSE );
		m_btn2002Colors.EnableWindow();
		m_btn2002Style.EnableWindow();
		m_btnStartCr.EnableWindow( !m_btn2002Colors.GetCheck() );
		m_btnEndCr.EnableWindow( !m_btn2002Colors.GetCheck() );
	} else {
		m_edtBG.EnableWindow( m_btnBG.GetCheck() );
		m_btn2002Colors.EnableWindow( FALSE );
		m_btn2002Style.EnableWindow( FALSE );
		m_btnStartCr.EnableWindow( FALSE );
		m_btnEndCr.EnableWindow( FALSE );
	}
}

void CPropImages::OnStartcr() 
{
  SelectColor(m_pOpt->cStartCr);	
}

void CPropImages::SelectColor(COLORREF &cr)
{
	CHOOSECOLOR	cc ;
	COLORREF	rgcrCustom[16];
	ZeroMemory( &cc,sizeof(cc) );
	memset( rgcrCustom,0xff,sizeof(rgcrCustom) );

	rgcrCustom[0] = GetSysColor( COLOR_ACTIVECAPTION );
	rgcrCustom[1] = GetSysColor( 27 );
	rgcrCustom[2] = GetThemeColor( LeftColor );
	rgcrCustom[3] = GetThemeColor( RightColor );
	rgcrCustom[4] = cr;

	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 CPropImages::OnEndcr() 
{
  SelectColor( m_pOpt->cEndCr );	
}

void CPropImages::OnChk2002() 
{
	m_btnStartCr.EnableWindow( !m_btn2002Colors.GetCheck() );
	m_btnEndCr.EnableWindow( !m_btn2002Colors.GetCheck() );
}

COLORREF CPropImages::GetThemeColor(clr color)
{
	HKEY	hKey;
	LONG  lRet;
	DWORD dwSize, dwType, dwDspOp;
	TCHAR szKey[MAX_PATH];
	COLORREF res = 0;

	// Open up the appropriate registry key
	lstrcpy( szKey, _T("Software\\Microsoft\\Color") );
	lRet= RegOpenKeyEx( HKEY_LOCAL_MACHINE,szKey,0,KEY_QUERY_VALUE | KEY_READ,&hKey );
	if( lRet != ERROR_SUCCESS )
		return 0;

	if( color == LeftColor ) {
		dwSize = sizeof( DWORD );
		dwType = REG_DWORD;
		lRet = RegQueryValueEx( hKey,REG_LEFTCOLOR,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
		if( lRet == ERROR_SUCCESS )
			res = (COLORREF)dwDspOp;
	}

	else if( color == RightColor ) {
		dwSize = sizeof( DWORD );
		dwType = REG_DWORD;
		lRet = RegQueryValueEx( hKey,REG_RIGHTCOLOR,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
		if( lRet == ERROR_SUCCESS )
			res = (COLORREF)dwDspOp;
	}

	RegCloseKey( hKey );
	return res;
}

void CPropImages::resetItems()
{
	// 攚宨夋憸
	if ( m_pOpt->szBG[0] != NULL ) {
		m_btnBG.SetCheck( 1 );
		m_edtBG.SetWindowText( m_pOpt->szBG );

		m_btnGradient.SetCheck( FALSE );
		m_btn2002Colors.EnableWindow( FALSE );
		m_btn2002Style.EnableWindow( FALSE );
		m_btnStartCr.EnableWindow( FALSE );
		m_btnEndCr.EnableWindow( FALSE );
		m_btnBrBG.EnableWindow( TRUE );
	}
	else if ( m_pOpt->bGradient ) {
		m_btnGradient.SetCheck( TRUE );
		m_btn2002Colors.SetCheck( m_pOpt->b2002Theme );
		m_btn2002Colors.EnableWindow( TRUE );
		m_btn2002Style.EnableWindow( TRUE );
		m_btn2002Style.SetCheck( m_pOpt->b2002Style );
		m_btnStartCr.EnableWindow( !m_btn2002Colors.GetCheck() );
		m_btnEndCr.EnableWindow( !m_btn2002Colors.GetCheck() );
		m_btnBG.SetCheck( FALSE );
		m_edtBG.EnableWindow( FALSE );
		m_btnBrBG.EnableWindow( FALSE );
	}
	else {
		m_btnBG.SetCheck( 0 );
		m_edtBG.EnableWindow( FALSE );
		m_btnBrBG.EnableWindow( FALSE );
		m_btnStartCr.EnableWindow( FALSE );
		m_btnEndCr.EnableWindow( FALSE );
	}

	// 儘僑
	if ( m_pOpt->bLogo ) {
		m_btnLogo.SetCheck( 1 );
		if ( m_pOpt->bShifted ) {
			m_btnShift.SetCheck( 1 );
			m_btnStdLogo.EnableWindow( FALSE );
			m_edtLogo.EnableWindow( FALSE );
			m_btnBrLogo.EnableWindow( FALSE );
		}
		else {
			m_btnShift.SetCheck( 0 );
			if ( lstrlen(m_pOpt->szLogo) > 0 ) {
				m_edtLogo.SetWindowText( m_pOpt->szLogo );
			}
			else {
				m_btnStdLogo.SetCheck( 1 );
				m_edtLogo.EnableWindow( FALSE );
				m_btnBrLogo.EnableWindow( FALSE );
			}
		}
	}
	else {
		m_btnShift.SetCheck( 0 );
		m_btnStdLogo.EnableWindow( FALSE );
		m_edtLogo.EnableWindow( FALSE );
		m_btnLogo.SetCheck( 0 );
		m_btnBrLogo.EnableWindow( FALSE );
	}
}

void CPropImages::On2002Style() 
{
	m_pOpt->b2002Style = m_btn2002Style.GetCheck();
}

⌨️ 快捷键说明

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