HWND hMainWnd; /* Main Window */
HWND hTabWnd; /* Tab Control Window */
+UINT uXIcon = 0, uYIcon = 0; /* Icon sizes */
+HICON hDialogIcon = NULL;
void MsConfig_OnTabWndSelChange(void);
TCITEM item;
hTabWnd = GetDlgItem(hWnd, IDC_TAB);
- hGeneralPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_GENERAL_PAGE), hWnd, (DLGPROC) GeneralPageWndProc);
- hSystemPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SYSTEM_PAGE), hWnd, (DLGPROC) SystemPageWndProc);
- hFreeLdrPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_FREELDR_PAGE), hWnd, (DLGPROC) FreeLdrPageWndProc);
- hServicesPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SERVICES_PAGE), hWnd, (DLGPROC) ServicesPageWndProc);
- hStartupPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_STARTUP_PAGE), hWnd, (DLGPROC) StartupPageWndProc);
- hToolsPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_TOOLS_PAGE), hWnd, (DLGPROC) ToolsPageWndProc);
+ hGeneralPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_GENERAL_PAGE), hWnd, GeneralPageWndProc);
+ hSystemPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SYSTEM_PAGE), hWnd, SystemPageWndProc);
+ hFreeLdrPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_FREELDR_PAGE), hWnd, FreeLdrPageWndProc);
+ hServicesPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_SERVICES_PAGE), hWnd, ServicesPageWndProc);
+ hStartupPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_STARTUP_PAGE), hWnd, StartupPageWndProc);
+ hToolsPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_TOOLS_PAGE), hWnd, ToolsPageWndProc);
LoadString(hInst, IDS_MSCONFIG, szTemp, 256);
SetWindowText(hWnd, szTemp);
ShowWindow(hFreeLdrPage, SW_HIDE);
ShowWindow(hServicesPage, SW_HIDE);
BringWindowToTop(hSystemPage);
- break;
+ break;
case 2: //Freeldr
ShowWindow(hGeneralPage, SW_HIDE);
ShowWindow(hSystemPage, SW_HIDE);
}
+static
+VOID
+SetDialogIcon(HWND hDlg)
+{
+ if (hDialogIcon) DestroyIcon(hDialogIcon);
+
+ hDialogIcon = LoadImage(GetModuleHandle(NULL),
+ MAKEINTRESOURCE(IDI_APPICON),
+ IMAGE_ICON,
+ uXIcon,
+ uYIcon,
+ 0);
+ SendMessage(hDlg,
+ WM_SETICON,
+ ICON_SMALL,
+ (LPARAM)hDialogIcon);
+}
+
+
/* Message handler for dialog box. */
INT_PTR CALLBACK
MsConfigWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
int idctrl;
LPNMHDR pnmh;
- static HICON hIcon;
+ UINT uXIconNew, uYIconNew;
switch (message)
{
case WM_INITDIALOG:
hMainWnd = hDlg;
- hIcon = LoadImage(GetModuleHandle(NULL),
- MAKEINTRESOURCE(IDI_APPICON),
- IMAGE_ICON,
- 16,
- 16,
- 0);
- SendMessage(hDlg,
- WM_SETICON,
- ICON_SMALL,
- (LPARAM)hIcon);
+
+ uXIcon = GetSystemMetrics(SM_CXSMICON);
+ uYIcon = GetSystemMetrics(SM_CYSMICON);
+
+ SetDialogIcon(hDlg);
+
return OnCreate(hDlg);
+ case WM_SETTINGCHANGE:
+ uXIconNew = GetSystemMetrics(SM_CXSMICON);
+ uYIconNew = GetSystemMetrics(SM_CYSMICON);
+
+ if ((uXIcon != uXIconNew) || (uYIcon != uYIconNew))
+ {
+ uXIcon = uXIconNew;
+ uYIcon = uYIconNew;
+ SetDialogIcon(hDlg);
+ }
+ break;
+
case WM_COMMAND:
if (LOWORD(wParam) == IDOK)
break;
case WM_NOTIFY:
- idctrl = (int)wParam;
+ idctrl = wParam;
pnmh = (LPNMHDR)lParam;
if ((pnmh->hwndFrom == hTabWnd) &&
(pnmh->idFrom == IDC_TAB) &&
}
break;
+ case WM_SYSCOLORCHANGE:
+ /* Forward WM_SYSCOLORCHANGE to common controls */
+ SendMessage(hServicesListCtrl, WM_SYSCOLORCHANGE, 0, 0);
+ SendMessage(hStartupListCtrl, WM_SYSCOLORCHANGE, 0, 0);
+ SendMessage(hToolsListCtrl, WM_SYSCOLORCHANGE, 0, 0);
+ break;
+
case WM_DESTROY:
if (hToolsPage)
DestroyWindow(hToolsPage);
DestroyWindow(hFreeLdrPage);
if (hSystemPage)
DestroyWindow(hSystemPage);
- if (hIcon)
- DestroyIcon(hIcon);
+ if (hDialogIcon)
+ DestroyIcon(hDialogIcon);
return DefWindowProc(hDlg, message, wParam, lParam);
}
return 0;
}
-int APIENTRY WinMain(HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPSTR lpCmdLine,
- int nCmdShow)
+int APIENTRY _tWinMain(HINSTANCE hInstance,
+ HINSTANCE hPrevInstance,
+ LPTSTR lpCmdLine,
+ int nCmdShow)
{
INITCOMMONCONTROLSEX InitControls;
hInst = hInstance;
- DialogBox(hInst, (LPCTSTR)IDD_MSCONFIG_DIALOG, NULL, (DLGPROC) MsConfigWndProc);
+ DialogBox(hInst, (LPCTSTR)IDD_MSCONFIG_DIALOG, NULL, MsConfigWndProc);
return 0;
}