📄 propdispitems.cpp
字号:
// PropDispItems.cpp : 僀儞僾儕儊儞僥乕僔儑儞 僼傽僀儖
//
#include "stdafx.h"
#include "wisBarSetup.h"
#include "PropDispItems.h"
#include "FontSelDlg.h"
#include "SetupDlg.h"
#ifdef _SHLOBJ_H_
#undef _SHLOBJ_H_
#endif
#include <shlobj.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPropDispItems 僾儘僷僥傿 儁乕僕
IMPLEMENT_DYNCREATE(CPropDispItems, CPropertyPage)
CPropDispItems::CPropDispItems()
: CPropertyPage(CPropDispItems::IDD),
m_pOpt(NULL)
{
//{{AFX_DATA_INIT(CPropDispItems)
//}}AFX_DATA_INIT
}
CPropDispItems::~CPropDispItems()
{
}
void CPropDispItems::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPropDispItems)
DDX_Control(pDX, IDC_CHK_AMPM, m_btnAMPM);
DDX_Control(pDX, IDC_CHK_ALWAYS, m_btnAlways);
DDX_Control(pDX, IDC_CHK_NO3D, m_btnNo3D);
DDX_Control(pDX, IDC_STARTUP, m_btnStartup);
DDX_Control(pDX, IDC_SEL_DATE, m_btnDateFnt);
DDX_Control(pDX, IDC_CR_SMALL, m_btnSmallCr);
DDX_Control(pDX, IDC_CHK_SMALL, m_btnSmall);
DDX_Control(pDX, IDC_CHK_DATE, m_btnDate);
DDX_Control(pDX, IDC_APPLYNOW, m_btnApplyNow);
DDX_Control(pDX, IDC_SEL_TITLE, m_btnTitleFnt);
DDX_Control(pDX, IDC_SEL_CLOCK, m_btnClockFnt);
DDX_Control(pDX, IDC_CHK_TITLE, m_btnTitle);
DDX_Control(pDX, IDC_CHK_TASKICON, m_btnTaskIcon);
DDX_Control(pDX, IDC_CHK_CLOCK, m_btnClock);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPropDispItems, CPropertyPage)
//{{AFX_MSG_MAP(CPropDispItems)
ON_BN_CLICKED(IDC_APPLYNOW, OnApplynow)
ON_BN_CLICKED(IDC_SEL_TITLE, OnSelTitle)
ON_BN_CLICKED(IDC_SEL_CLOCK, OnSelClock)
ON_BN_CLICKED(IDC_CHK_TITLE, OnChkTitle)
ON_BN_CLICKED(IDC_CHK_CLOCK, OnChkClock)
ON_BN_CLICKED(IDC_CHK_DATE, OnChkDate)
ON_BN_CLICKED(IDC_SEL_DATE, OnSelDate)
ON_BN_CLICKED(IDC_CHK_SMALL, OnChkSmall)
ON_BN_CLICKED(IDC_CR_SMALL, OnCrSmall)
ON_BN_CLICKED(IDC_CHK_TASKICON, OnChkTaskicon)
ON_BN_CLICKED(IDC_STARTUP, OnStartup)
ON_BN_CLICKED(IDC_CHK_NO3D, OnChkNo3d)
ON_BN_CLICKED(IDC_CR_BAT, OnCrBat)
ON_BN_CLICKED(IDC_CHK_ALWAYS, OnChkAlways)
ON_BN_CLICKED(IDC_CHK_AMPM, OnChkAmpm)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPropDispItems 儊僢僙乕僕 僴儞僪儔
/////////////////////////////////////////////////////////////////////////////
// 尰嵼偺擖椡撪梕傪揔梡
void CPropDispItems::OnApplynow()
{
CSetupDlg* pParent = (CSetupDlg*)GetParent();
OnApply();
pParent->ApplyNow();
}
/////////////////////////////////////////////////////////////////////////////
// 弶婜張棟
BOOL CPropDispItems::OnInitDialog()
{
CPropertyPage::OnInitDialog();
resetItems();
return( TRUE );
}
/////////////////////////////////////////////////////////////////////////////
// 僼僅儞僩慖戰乮僞僀僩儖乯
void CPropDispItems::OnSelTitle()
{
CFontSelDlg dlg(this);
dlg.m_strFont = m_pOpt->szTitleFont ;
dlg.m_iSize = m_pOpt->iTitleSize ;
dlg.m_bBold = (m_pOpt->dwTitleStyle & FNT_STYLE_BOLD ? TRUE : FALSE);
dlg.m_bItalic = (m_pOpt->dwTitleStyle & FNT_STYLE_ITALIC ? TRUE : FALSE);
dlg.m_Color = m_pOpt->crTitle;
if ( dlg.DoModal() == IDOK ) {
lstrcpy( m_pOpt->szTitleFont,dlg.m_strFont );
m_pOpt->iTitleSize = dlg.m_iSize ;
m_pOpt->dwTitleStyle = 0 ;
if ( dlg.m_bBold ) {
m_pOpt->dwTitleStyle |= FNT_STYLE_BOLD ;
}
if ( dlg.m_bItalic ) {
m_pOpt->dwTitleStyle |= FNT_STYLE_ITALIC ;
}
m_pOpt->crTitle = dlg.m_Color;
}
}
/////////////////////////////////////////////////////////////////////////////
// 僼僅儞僩慖戰乮帪寁乯
void CPropDispItems::OnSelClock()
{
CFontSelDlg dlg(this);
dlg.m_strFont = m_pOpt->szClockFont ;
dlg.m_iSize = m_pOpt->iClockSize ;
dlg.m_bBold = (m_pOpt->dwClockStyle & FNT_STYLE_BOLD ? TRUE : FALSE);
dlg.m_bItalic = (m_pOpt->dwClockStyle & FNT_STYLE_ITALIC ? TRUE : FALSE);
dlg.m_Color = m_pOpt->crClock;
if ( dlg.DoModal() == IDOK ) {
lstrcpy( m_pOpt->szClockFont,dlg.m_strFont );
m_pOpt->iClockSize = dlg.m_iSize ;
m_pOpt->dwClockStyle = 0 ;
if ( dlg.m_bBold ) {
m_pOpt->dwClockStyle |= FNT_STYLE_BOLD ;
}
if ( dlg.m_bItalic ) {
m_pOpt->dwClockStyle |= FNT_STYLE_ITALIC ;
}
m_pOpt->crClock = dlg.m_Color;
}
}
/////////////////////////////////////////////////////////////////////////////
// 僼僅儞僩丄怓儃僞儞偺桳岠/柍岠壔乮僞僀僩儖乯
void CPropDispItems::OnChkTitle()
{
if ( m_btnTitle.GetCheck() == 1 ) {
m_pOpt->bTitle = TRUE ;
if ( !m_btnTitleFnt.IsWindowEnabled() ) {
m_btnTitleFnt.EnableWindow();
// m_btnTitleCr.EnableWindow();
m_btnAlways.EnableWindow();
}
}
else {
m_pOpt->bTitle = m_pOpt->bAlways = FALSE ;
m_btnAlways.SetCheck( 0 );
if ( m_btnTitleFnt.IsWindowEnabled() ) {
m_btnTitleFnt.EnableWindow( FALSE );
// m_btnTitleCr.EnableWindow( FALSE );
m_btnAlways.EnableWindow( FALSE );
}
}
}
/////////////////////////////////////////////////////////////////////////////
// 僼僅儞僩丄怓儃僞儞偺桳岠/柍岠壔乮帪寁乯
void CPropDispItems::OnChkClock()
{
if ( m_btnClock.GetCheck() == 1 ) {
m_pOpt->bClock = TRUE ;
if ( !m_btnClockFnt.IsWindowEnabled() ) {
m_btnClockFnt.EnableWindow();
// m_btnClockCr.EnableWindow();
}
}
else {
m_pOpt->bClock = FALSE ;
if ( m_btnClockFnt.IsWindowEnabled() ) {
m_btnClockFnt.EnableWindow( FALSE );
// m_btnClockCr.EnableWindow( FALSE );
}
if ( m_btnDate.GetCheck() != 1 )
m_btnDate.SetCheck(1);
}
}
/////////////////////////////////////////////////////////////////////////////
// 怓偺慖戰
void CPropDispItems::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 ;
}
/////////////////////////////////////////////////////////////////////////////
// 愝掕抣傪斀塮
BOOL CPropDispItems::OnApply()
{
// 愝掕抣傪曗惓
if ( m_pOpt->bSmallDate ) {
m_pOpt->bClock = m_pOpt->bDate = FALSE ;
}
else {
m_pOpt->bClock = (m_btnClock.GetCheck() == 1 ? TRUE : FALSE);
m_pOpt->bDate = (m_btnDate.GetCheck() == 1 ? TRUE : FALSE);
}
return CPropertyPage::OnApply();
}
/////////////////////////////////////////////////////////////////////////////
// 擔晅傪昞帵偡傞応崌偼丄僼僅儞僩愝掕偱偒側偄
void CPropDispItems::OnChkDate()
{
if ( m_btnDate.GetCheck() == 1 ) {
m_pOpt->bDate = TRUE ;
if ( !m_btnDateFnt.IsWindowEnabled() ) {
m_btnDateFnt.EnableWindow();
// m_btnDateCr.EnableWindow();
}
}
else {
m_pOpt->bDate = FALSE ;
if ( m_btnDateFnt.IsWindowEnabled() ) {
m_btnDateFnt.EnableWindow( FALSE );
// m_btnDateCr.EnableWindow( FALSE );
}
if ( m_btnClock.GetCheck() != 1 )
m_btnClock.SetCheck(1);
}
}
/////////////////////////////////////////////////////////////////////////////
// 僼僅儞僩慖戰乮擔晅乯
void CPropDispItems::OnSelDate()
{
CFontSelDlg dlg(this);
dlg.m_strFont = m_pOpt->szDateFont ;
dlg.m_iSize = m_pOpt->iDateSize ;
dlg.m_bBold = (m_pOpt->dwDateStyle & FNT_STYLE_BOLD ? TRUE : FALSE);
dlg.m_bItalic = (m_pOpt->dwDateStyle & FNT_STYLE_ITALIC ? TRUE : FALSE);
dlg.m_Color = m_pOpt->crDate;
if ( dlg.DoModal() == IDOK ) {
lstrcpy( m_pOpt->szDateFont,dlg.m_strFont );
m_pOpt->iDateSize = dlg.m_iSize ;
m_pOpt->dwDateStyle = 0 ;
if ( dlg.m_bBold ) {
m_pOpt->dwDateStyle |= FNT_STYLE_BOLD ;
}
if ( dlg.m_bItalic ) {
m_pOpt->dwDateStyle |= FNT_STYLE_ITALIC ;
}
m_pOpt->crDate = dlg.m_Color;
}
}
/////////////////////////////////////////////////////////////////////////////
// 儃僞儞偺桳岠/柍岠惂屼
void CPropDispItems::OnChkSmall()
{
if ( m_btnSmall.GetCheck() == 0 ) {
m_pOpt->bSmallDate = FALSE ;
m_btnDate.EnableWindow();
OnChkDate();
m_btnClock.EnableWindow();
OnChkClock();
m_btnSmallCr.EnableWindow();
}
else {
m_pOpt->bSmallDate = TRUE ;
m_btnDate.EnableWindow( FALSE );
m_btnDateFnt.EnableWindow( FALSE );
// m_btnDateCr.EnableWindow( FALSE );
m_btnClock.EnableWindow( FALSE );
m_btnClockFnt.EnableWindow( FALSE );
// m_btnClockCr.EnableWindow( FALSE );
m_btnSmallCr.EnableWindow();
}
}
/////////////////////////////////////////////////////////////////////////////
// 怓偺慖戰乮彫偝偄擔晅乯
void CPropDispItems::OnCrSmall()
{
SelectColor( m_pOpt->crSmall );
}
/////////////////////////////////////////////////////////////////////////////
// 擖椡抣傪斀塮乮僞僗僋傾僀僐儞乯
void CPropDispItems::OnChkTaskicon()
{
if ( m_btnTaskIcon.GetCheck() == 1 ) {
m_pOpt->bTaskIcon = TRUE ;
m_btnNo3D.EnableWindow();
}
else {
m_pOpt->bTaskIcon = FALSE ;
m_btnNo3D.EnableWindow( FALSE );
}
}
/////////////////////////////////////////////////////////////////////////////
// 僗僞乕僩傾僢僾搊榐/夝彍
void CPropDispItems::OnStartup()
{
CString strBtn ;
m_btnStartup.GetWindowText( strBtn );
if ( strBtn.Compare(STR_REG_STUP) == 0 ) {
RegisterStartup();
}
else {
RegisterStartup( FALSE );
}
}
/////////////////////////////////////////////////////////////////////////////
// register to or remove from "startup"
BOOL CPropDispItems::RegisterStartup( BOOL bReg )
{
TCHAR szPath[MAX_PATH],szOwn[MAX_PATH];
m_btnStartup.SetWindowText( bReg ? STR_UNREG_STUP : STR_REG_STUP );
// get path myself
GetModuleFileName( AfxGetInstanceHandle(),szPath,sizeof(szPath) );
for ( int iIdx = lstrlen(szPath)-1 ; iIdx >= 0 ; iIdx-- ) {
if ( szPath[iIdx] == _T('\\') ) {
szPath[iIdx] = NULL ;
lstrcat( szPath,_T("\\wisBar.exe") );
break ;
}
}
wsprintf( szOwn,_T("\"%s\""),szPath );
// get startup folder
if ( !GetStartupPath(szPath) ) {
return( FALSE );
}
// remove?
if ( !bReg ) {
DeleteFile( szPath );
return( TRUE );
}
// create chortcut
return( (BOOL)SHCreateShortcut(szPath,szOwn) );
}
/////////////////////////////////////////////////////////////////////////////
// get "startup" folder
BOOL CPropDispItems::GetStartupPath( LPTSTR lpPath )
{
HRESULT hr ;
LPITEMIDLIST pidl ;
IMalloc *pm ;
hr = SHGetSpecialFolderLocation( NULL,CSIDL_STARTUP,&pidl );
if ( hr == NOERROR ) {
SHGetPathFromIDList( pidl,lpPath );
SHGetMalloc( &pm );
if ( pm ) {
pm->Free( pidl );
pm->Release();
}
if ( lpPath[lstrlen(lpPath)-1] != _T('\\') ) {
lstrcat( lpPath,_T("\\") );
}
lstrcat( lpPath,_T("WIS Bar.lnk") );
}
else {
return( FALSE );
}
return( TRUE );
}
/////////////////////////////////////////////////////////////////////////////
// 3D傾僀僐儞
void CPropDispItems::OnChkNo3d()
{
if ( m_btnNo3D.GetCheck() == 1 ) {
m_pOpt->bNo3D = TRUE ;
}
else {
m_pOpt->bNo3D = FALSE ;
}
}
/////////////////////////////////////////////////////////////////////////////
// 僶僢僥儕儊乕僞乕偺暥帤怓
void CPropDispItems::OnCrBat()
{
}
/////////////////////////////////////////////////////////////////////////////
// 忢偵僗僞乕僩儊僯儏乕傪昞帵
void CPropDispItems::OnChkAlways()
{
m_pOpt->bAlways = (m_btnAlways.GetCheck() == 1 ? TRUE : FALSE);
}
void CPropDispItems::OnChkAmpm()
{
m_pOpt->bAMPM = (m_btnAMPM.GetCheck() == 1 ? TRUE : FALSE);
}
void CPropDispItems::resetItems()
{
// 愝掕抣傪昞帵
m_btnTitle.SetCheck( m_pOpt->bTitle ? 1 : 0 );
m_btnClock.SetCheck( m_pOpt->bClock ? 1 : 0 );
m_btnDate.SetCheck( m_pOpt->bDate ? 1 : 0 );
m_btnSmall.SetCheck( m_pOpt->bSmallDate ? 1 : 0 );
m_btnTaskIcon.SetCheck( m_pOpt->bTaskIcon ? 1 : 0 );
m_btnAMPM.SetCheck( m_pOpt->bAMPM ? 1 : 0 );
// 儃僞儞偺桳岠/柍岠愝掕
if ( !m_pOpt->bTitle ) {
m_btnTitleFnt.EnableWindow( FALSE );
// m_btnTitleCr.EnableWindow( FALSE );
m_btnAlways.EnableWindow( FALSE );
}
m_btnAlways.SetCheck( m_pOpt->bAlways ? 1 : 0 );
if ( !m_pOpt->bClock ) {
m_btnClockFnt.EnableWindow( FALSE );
// m_btnClockCr.EnableWindow( FALSE );
}
if ( !m_pOpt->bDate ) {
m_btnDateFnt.EnableWindow( FALSE );
// m_btnDateCr.EnableWindow( FALSE );
}
if ( m_pOpt->bSmallDate ) {
m_btnDate.EnableWindow( FALSE );
m_btnDateFnt.EnableWindow( FALSE );
// m_btnDateCr.EnableWindow( FALSE );
m_btnClock.EnableWindow( FALSE );
m_btnClockFnt.EnableWindow( FALSE );
// m_btnClockCr.EnableWindow( FALSE );
}
else {
m_btnSmallCr.EnableWindow( FALSE );
}
// 3D傾僀僐儞
m_btnNo3D.SetCheck( m_pOpt->bNo3D ? 1 : 0 );
if ( !m_pOpt->bTaskIcon ) {
m_btnNo3D.EnableWindow( FALSE );
}
// 僗僞乕僩傾僢僾
TCHAR szPath[MAX_PATH];
ZeroMemory( szPath,sizeof(szPath) );
if ( GetStartupPath(szPath) ) {
if ( GetFileAttributes(szPath) != 0xFFFFFFFF ) {
m_btnStartup.SetWindowText( STR_UNREG_STUP );
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -