📄 prefdialog.cpp
字号:
Button_SetCheck(hwndLogDecoder, originalValues.logDecoder);
Button_SetCheck(hwndLogInput, originalValues.logInput);
Button_SetCheck(hwndLogOutput, originalValues.logOutput);
Button_SetCheck(hwndLogPerformance, originalValues.logPerformance);
break;
}
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case IDC_LOG:
{
BOOL enabled;
if(Button_GetCheck(hwndLog) == BST_CHECKED)
{
currentValues.enableLogging = true;
}
else
{
currentValues.enableLogging = false;
}
enabled = (currentValues.enableLogging ? TRUE : FALSE);
Button_Enable(hwndLogDecoder, enabled);
Button_Enable(hwndLogInput, enabled);
Button_Enable(hwndLogOutput, enabled);
Button_Enable(hwndLogMain, enabled);
Button_Enable(hwndLogPerformance, enabled);
if(memcmp( &originalValues,
¤tValues,
sizeof(PrefsStruct)))
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_LOGDECODER:
{
if(Button_GetCheck(hwndLogDecoder) == BST_CHECKED)
{
currentValues.logDecoder = true;
}
else
{
currentValues.logDecoder = false;
}
if(memcmp( &originalValues,
¤tValues,
sizeof(PrefsStruct)))
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_LOGINPUT:
{
if(Button_GetCheck(hwndLogInput) == BST_CHECKED)
{
currentValues.logInput = true;
}
else
{
currentValues.logInput = false;
}
if(memcmp( &originalValues,
¤tValues,
sizeof(PrefsStruct)))
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_LOGOUTPUT:
{
if(Button_GetCheck(hwndLogOutput) == BST_CHECKED)
{
currentValues.logOutput = true;
}
else
{
currentValues.logOutput = false;
}
if(memcmp( &originalValues,
¤tValues,
sizeof(PrefsStruct)))
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_LOGPERFORMANCE:
{
if(Button_GetCheck(hwndLogPerformance) == BST_CHECKED)
{
currentValues.logPerformance = true;
}
else
{
currentValues.logPerformance = false;
}
if(memcmp( &originalValues,
¤tValues,
sizeof(PrefsStruct)))
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
case IDC_LOGMAIN:
{
if(Button_GetCheck(hwndLogMain) == BST_CHECKED)
{
currentValues.logMain = true;
}
else
{
currentValues.logMain = false;
}
if(memcmp( &originalValues,
¤tValues,
sizeof(PrefsStruct)))
{
PropSheet_Changed(GetParent(hwnd), hwnd);
}
else
{
PropSheet_UnChanged(GetParent(hwnd), hwnd);
}
break;
}
}
break;
}
case WM_NOTIFY:
{
NMHDR* notify = (NMHDR*)lParam;
switch(notify->code)
{
case PSN_SETACTIVE:
{
break;
}
case PSN_APPLY:
{
SavePrefsValues(prefs, ¤tValues);
break;
}
case PSN_KILLACTIVE:
{
break;
}
case PSN_RESET:
{
SavePrefsValues(prefs, &originalValues);
break;
}
}
break;
}
}
return result;
}
static
BOOL
CALLBACK
PrefPage4Proc( HWND hwnd,
UINT msg,
WPARAM wParam,
LPARAM lParam)
{
UINT result = 0;
static PROPSHEETPAGE* psp = NULL;
static Preferences* prefs = NULL;
switch(msg)
{
case WM_INITDIALOG:
{
// remember these for later...
psp = (PROPSHEETPAGE*)lParam;
prefs = (Preferences*)psp->lParam;
break;
}
case WM_COMMAND:
{
switch(LOWORD(wParam))
{
case IDC_GOTOFREEAMP:
{
ShellExecute( hwnd,
"open",
"http://www.freeamp.org/",
NULL,
NULL,
SW_SHOWNORMAL);
break;
}
case IDC_GOTOEMUSIC:
{
ShellExecute( hwnd,
"open",
"http://www.emusic.com/",
NULL,
NULL,
SW_SHOWNORMAL);
break;
}
}
break;
}
case WM_NOTIFY:
{
NMHDR* notify = (NMHDR*)lParam;
switch(notify->code)
{
case PSN_SETACTIVE:
{
break;
}
case PSN_APPLY:
{
SavePrefsValues(prefs, ¤tValues);
break;
}
case PSN_KILLACTIVE:
{
break;
}
case PSN_RESET:
{
SavePrefsValues(prefs, &originalValues);
break;
}
}
break;
}
}
return result;
}
bool DisplayPreferences(HWND hwndParent, Preferences* prefs)
{
bool result = false;
PROPSHEETPAGE psp[4];
PROPSHEETHEADER psh;
HINSTANCE hinst = (HINSTANCE)GetWindowLong(hwndParent, GWL_HINSTANCE);
psp[0].dwSize = sizeof(PROPSHEETPAGE);
psp[0].dwFlags = 0;
psp[0].hInstance = hinst;
psp[0].pszTemplate = MAKEINTRESOURCE(IDD_PREF1);
psp[0].pszIcon = NULL;
psp[0].pfnDlgProc = PrefPage1Proc;
psp[0].pszTitle = NULL;
psp[0].lParam = (LPARAM)prefs;
psp[1].dwSize = sizeof(PROPSHEETPAGE);
psp[1].dwFlags = 0;
psp[1].hInstance = hinst;
psp[1].pszTemplate = MAKEINTRESOURCE(IDD_PREF2);
psp[1].pszIcon = NULL;
psp[1].pfnDlgProc = PrefPage2Proc;
psp[1].pszTitle = NULL;
psp[1].lParam = (LPARAM)prefs;
psp[2].dwSize = sizeof(PROPSHEETPAGE);
psp[2].dwFlags = 0;
psp[2].hInstance = hinst;
psp[2].pszTemplate = MAKEINTRESOURCE(IDD_PREF3);
psp[2].pszIcon = NULL;
psp[2].pfnDlgProc = PrefPage3Proc;
psp[2].pszTitle = NULL;
psp[2].lParam = (LPARAM)prefs;
psp[3].dwSize = sizeof(PROPSHEETPAGE);
psp[3].dwFlags = 0;
psp[3].hInstance = hinst;
psp[3].pszTemplate = MAKEINTRESOURCE(IDD_PREF4);
psp[3].pszIcon = NULL;
psp[3].pfnDlgProc = PrefPage4Proc;
psp[3].pszTitle = NULL;
psp[3].lParam = (LPARAM)prefs;
psh.dwSize = sizeof(PROPSHEETHEADER);
psh.dwFlags = PSH_PROPSHEETPAGE;
psh.hwndParent = hwndParent;
psh.hInstance = hinst;
psh.pszIcon = NULL;
psh.pszCaption = "FreeAmp Preferences";
psh.nPages = sizeof(psp)/sizeof(PROPSHEETPAGE);
psh.nStartPage = 0;
psh.ppsp = psp;
psh.pfnCallback = NULL;
GetPrefsValues(prefs, &originalValues);
currentValues = originalValues;
result = (PropertySheet(&psh) > 0);
return result;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -