📄 setupdlg.cpp
字号:
// SetupDlg.cpp : 僀儞僾儕儊儞僥乕僔儑儞 僼傽僀儖
//
#include "stdafx.h"
#include "wisBarSetup.h"
#include "SetupDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSetupDlg
IMPLEMENT_DYNAMIC(CSetupDlg, CPropertySheet)
CSetupDlg::CSetupDlg(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
SetupPages();
FillDefault( &m_opt );
}
CSetupDlg::CSetupDlg(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
SetupPages();
FillDefault( &m_opt );
}
CSetupDlg::~CSetupDlg()
{
}
BEGIN_MESSAGE_MAP(CSetupDlg, CPropertySheet)
//{{AFX_MSG_MAP(CSetupDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSetupDlg 儊僢僙乕僕 僴儞僪儔
void CSetupDlg::SetupPages()
{
m_icons.m_pOpt = &m_opt ;
m_imgs.m_pOpt = &m_opt ;
m_items.m_pOpt = &m_opt ;
m_order.m_pOpt = &m_opt ;
m_options.m_pOpt = &m_opt ;
m_icons2.m_pOpt = &m_opt ;
AddPage( &m_items );
AddPage( &m_options );
AddPage( &m_icons2 );
AddPage( &m_imgs );
AddPage( &m_icons );
AddPage( &m_order );
AddPage( &m_about );
}
/////////////////////////////////////////////////////////////////////////////
// 愝掕抣偺撉傒崬傒
BOOL CSetupDlg::LoadSettings()
{
HKEY hKey,hSubKey ;
LONG lRet ;
TCHAR szBuf[MAX_PATH+1],szKey[MAX_PATH+1];
DWORD dwSize, dwType, dwDspOp ;
// 僉乕丒僆乕僾儞
lRet = RegCreateKeyEx( HKEY_CURRENT_USER,REG_KEY,0,_T(""),REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,&dwDspOp );
if ( lRet != ERROR_SUCCESS ) {
return( FALSE );
}
// 昞帵崁栚
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_DISP_ITEMS,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
// 僂傿儞僪僂丒僞僀僩儖
m_opt.bTitle = (dwDspOp & DISPITEM_TITLE ? TRUE : FALSE);
// 帪寁
m_opt.bClock = (dwDspOp & DISPITEM_CLOCK ? TRUE : FALSE);
// 擔晅
m_opt.bDate = (dwDspOp & DISPITEM_DATE ? TRUE : FALSE);
// 彫偝偄擔晅
m_opt.bSmallDate = (dwDspOp & DISPITEM_SMALLDATE ? TRUE : FALSE);
// 僔僗僥儉忣曬
m_opt.bSystem = (dwDspOp & DISPITEM_SYSTEM ? TRUE : FALSE);
// 儘僑僀儊乕僕
m_opt.bLogo = (dwDspOp & DISPITEM_LOGO ? TRUE : FALSE);
m_opt.bShifted = (dwDspOp & DISPITEM_SHIFTTITLE ? TRUE : FALSE);
// 僞僗僋傾僀僐儞
m_opt.bTaskIcon = (dwDspOp & DISPITEM_TASKICON ? TRUE : FALSE);
// 3D傾僀僐儞
m_opt.bNo3D = (dwDspOp & DISPITEM_NO3D ? TRUE : FALSE);
// 忢偵僗僞乕僩儊僯儏乕傪昞帵
m_opt.bAlways = (dwDspOp & DISPITEM_ALWAYS ? TRUE : FALSE);
if ( !m_opt.bTitle ) {
m_opt.bAlways = FALSE ;
}
}
// Smart Minimize
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_SMARTMINIMIZE,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.bSmartMinimize = (dwDspOp == 0 ? FALSE : TRUE);
}
// Compact Date Time
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_COMPACT,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.bAMPM = (dwDspOp == 0 ? FALSE : TRUE);
}
// Tap and hold mute
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_THMUTE,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.bTHMUTE = (dwDspOp == 0 ? FALSE : TRUE);
}
// Gradient Titlebar
dwType = REG_DWORD;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_GRADIENT,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.bGradient = (dwDspOp == 0 ? FALSE : TRUE);
}
dwType = REG_DWORD;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_DITHERED,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if( lRet == ERROR_SUCCESS ) {
m_opt.bDithered = (dwDspOp == 0 ? FALSE : TRUE);
}
// Use 2002 Font colors
dwType = REG_DWORD;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_2002FONTS,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if( lRet == ERROR_SUCCESS ) {
m_opt.use2002FontColors = (dwDspOp == 0 ? FALSE : TRUE);
}
// Use 2002 Theme colors
dwType = REG_DWORD;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_2002THEME,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if( lRet == ERROR_SUCCESS ) {
m_opt.b2002Theme = (dwDspOp == 0 ? FALSE : TRUE);
}
dwType = REG_DWORD;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_2002STYLE,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if( lRet == ERROR_SUCCESS ) {
m_opt.b2002Style = (dwDspOp == 0 ? FALSE : TRUE);
}
// Gradient Start Color
dwType = REG_DWORD;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_GRADSTART,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.cStartCr = (COLORREF)dwDspOp;
}
// Gradient End Color
dwType = REG_DWORD;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_GRADEND,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.cEndCr = (COLORREF)dwDspOp;
}
// Notifications
dwType = REG_DWORD;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_NOTIFY,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if( lRet == ERROR_SUCCESS )
m_opt.bNotification = (dwDspOp != 0);
dwType = REG_DWORD;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_TAPAPPOINT,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if( lRet == ERROR_SUCCESS )
m_opt.tapNextAppointment = (dwDspOp != 0);
// Hide Activesync
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_HIDEA,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.bHidea = (dwDspOp == 0 ? FALSE : TRUE);
}
// Goto Today
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_TODAY,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.bToday = (dwDspOp == 0 ? FALSE : TRUE);
}
// 3d buttons
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_3DBUTTON,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.b3dbutton = (dwDspOp == 0 ? FALSE : TRUE);
}
// 僞僀僩儖娭楢
if ( m_opt.bTitle ) {
// 僞僀僩儖丒僼僅儞僩
dwType = REG_SZ ;
dwSize = sizeof(szBuf);
lRet = RegQueryValueEx( hKey,REG_TITLE_FONT,0,&dwType,(LPBYTE)szBuf,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
lstrcpy( m_opt.szTitleFont,szBuf );
}
// 僞僀僩儖丒僼僅儞僩僒僀僘
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_TITLE_SIZE,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.iTitleSize = (int)dwDspOp ;
}
// 僞僀僩儖丒僇儔乕
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_TITLE_CR,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.crTitle = (COLORREF)dwDspOp ;
}
// 僼僅儞僩彂懱
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_TITLE_STYL,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.dwTitleStyle = (COLORREF)dwDspOp ;
}
}
// 帪寁娭楢
if ( m_opt.bClock ) {
// 帪寁僼僅儞僩
dwType = REG_SZ ;
dwSize = sizeof(szBuf);
lRet = RegQueryValueEx( hKey,REG_CLOCK_FONT,0,&dwType,(LPBYTE)szBuf,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
lstrcpy( m_opt.szClockFont,szBuf );
}
// 帪寁僼僅儞僩僒僀僘
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_CLOCK_SIZE,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.iClockSize = (int)dwDspOp ;
}
// 帪寁僇儔乕
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_CLOCK_CR,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.crClock = (COLORREF)dwDspOp ;
}
// 帪寁彂懱
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_CLOCK_STYL,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.dwClockStyle = (COLORREF)dwDspOp ;
}
}
// 昞婰
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_CLOCK_FMT,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.dwClockFormat = dwDspOp ;
}
// 僶僢僥儕乕儅乕僋怓
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_BATT_COLOR,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.crBatt = (COLORREF)dwDspOp ;
}
// 擔晅娭楢
if ( m_opt.bDate ) {
// 擔晅僼僅儞僩
dwType = REG_SZ ;
dwSize = sizeof(szBuf);
lRet = RegQueryValueEx( hKey,REG_DATE_FONT,0,&dwType,(LPBYTE)szBuf,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
lstrcpy( m_opt.szDateFont,szBuf );
}
// 擔晅僼僅儞僩僒僀僘
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_DATE_SIZE,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.iDateSize = (int)dwDspOp ;
}
// 擔晅僇儔乕
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_DATE_CR,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.crDate = (COLORREF)dwDspOp ;
}
// 擔晅彂懱
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_DATE_STYL,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.dwDateStyle = (COLORREF)dwDspOp ;
}
}
// 彫偝偄擔晅偺怓
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hKey,REG_SM_COLOR,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.crSmall = (COLORREF)dwDspOp ;
}
// 儘僑娭楢
if ( m_opt.bLogo ) {
dwType = REG_SZ ;
dwSize = sizeof(szBuf);
lRet = RegQueryValueEx( hKey,REG_LOGO_IMG,0,&dwType,(LPBYTE)szBuf,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
lstrcpy( m_opt.szLogo,szBuf );
}
}
// 攚宨夋憸
dwType = REG_SZ ;
dwSize = sizeof(szBuf);
lRet = RegQueryValueEx( hKey,REG_BGIMG_FILE,0,&dwType,(LPBYTE)szBuf,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
lstrcpy( m_opt.szBG,szBuf );
}
// 傾僀僐儞
for ( int iIdx = 0 ; iIdx < WIS_ICON_NUM ; iIdx++ ) {
wsprintf( szKey,_T("%s%d"),REG_ICON_KEY,iIdx );
// 僉乕丒僆乕僾儞
lRet = RegCreateKeyEx( hKey,szKey,0,_T(""),REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hSubKey,&dwDspOp );
if ( lRet != ERROR_SUCCESS ) {
RegCloseKey( hKey );
return( FALSE );
}
// 昞帵偺桳柍
dwType = REG_DWORD ;
dwSize = sizeof( DWORD );
lRet = RegQueryValueEx( hSubKey,REG_ICON_DISP,0,&dwType,(LPBYTE)&dwDspOp,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
m_opt.ico[iIdx].bDsp = (dwDspOp == 0 ? FALSE : TRUE);
// 僀儊乕僕丒僼傽僀儖
dwType = REG_SZ ;
dwSize = sizeof(szBuf);
lRet = RegQueryValueEx( hSubKey,REG_ICON_FILE,0,&dwType,(LPBYTE)szBuf,&dwSize );
if ( lRet == ERROR_SUCCESS ) {
lstrcpy( m_opt.ico[iIdx].szIcon,szBuf );
}
}
// 僋儘乕僘
RegCloseKey( hSubKey );
}
// 昞帵弴彉
BYTE cbBuf[ORDER_ID_MAX];
dwType = REG_BINARY ;
dwSize = ORDER_ID_MAX ;
lRet = RegQueryValueEx( hKey,REG_ORDER,0,&dwType,cbBuf,&dwSize );
if ( (lRet == ERROR_SUCCESS) && (dwSize == sizeof(cbBuf)) ) {
BYTE cbChkBuf[ORDER_ID_MAX];
BOOL bOk = TRUE ;
// 曗惓偡傞
ZeroMemory( cbChkBuf,sizeof(cbChkBuf) );
for ( iIdx = 0 ; iIdx < ORDER_ID_MAX ; iIdx++ ) {
if ( cbChkBuf[cbBuf[iIdx]] == 0 ) {
cbChkBuf[cbBuf[iIdx]] = 1 ;
}
else {
bOk = FALSE ;
}
}
if ( bOk ) {
CopyMemory( m_opt.cbOrder,cbBuf,sizeof(cbBuf) );
}
}
// 僋儘乕僘
RegCloseKey( hKey );
m_opt.bGradient = m_opt.bGradient && (m_opt.szBG[0] == NULL);
return( TRUE );
}
/////////////////////////////////////////////////////////////////////////////
// 愝掕抣偺曐懚
BOOL CSetupDlg::SaveSettings()
{
HKEY hKey,hSubKey ;
LONG lRet ;
TCHAR szKey[MAX_PATH+1];
DWORD dwDspOp, dwVal ;
// 僉乕丒僆乕僾儞
lRet = RegCreateKeyEx( HKEY_CURRENT_USER,REG_KEY,0,_T(""),REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,&dwDspOp );
if ( lRet != ERROR_SUCCESS ) {
return( FALSE );
}
// 昞帵崁栚
dwVal = 0 ;
if ( m_opt.szBG[0] != NULL ) { // 攚宨夋憸
dwVal = DISPITEM_BG ;
}
if ( m_opt.bTitle ) { // 僂傿儞僪僂丒僞僀僩儖
dwVal |= DISPITEM_TITLE ;
}
if ( m_opt.bClock ) { // 帪寁
dwVal |= DISPITEM_CLOCK ;
}
if ( m_opt.bDate ) { // 擔晅
dwVal |= DISPITEM_DATE ;
}
if ( m_opt.bSmallDate ) { // 彫偝偄擔晅
dwVal |= DISPITEM_SMALLDATE ;
}
if ( m_opt.bSystem ) { // 僔僗僥儉忣曬
dwVal |= DISPITEM_SYSTEM ;
}
if ( m_opt.bLogo ) { // 儘僑
dwVal |= DISPITEM_LOGO ;
}
if ( m_opt.bShifted ) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -