📄 propicons.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 + -