Revision | 3455 (tree) |
---|---|
Time | 2009-06-09 01:25:42 |
Author | (del#1144) |
NT4 で 32bit アイコンを表示しようとして崩れるので、Tera Term 同様 LR_VGACOLOR を指定するようにした。
@@ -44,6 +44,7 @@ | ||
44 | 44 | #define BUTTON_INITFILE 1035 |
45 | 45 | #define EDIT_PROMPT_USER 1036 |
46 | 46 | #define STATIC_ICON 1036 |
47 | +#define IDC_TTPMENU_ICON 1036 | |
47 | 48 | #define EDIT_PROMPT_PASS 1037 |
48 | 49 | #define CHECK_TTSSH 1037 |
49 | 50 | #define EDIT_OPTION 1038 |
@@ -28,6 +28,7 @@ | ||
28 | 28 | HWND g_hWndMenu = NULL; // 設定ダイアログのハンドル |
29 | 29 | HWND g_hWndTip; // 設定ダイアログ内ツールチップのハンドル |
30 | 30 | HICON g_hIcon; // アプリケーションアイコンのハンドル |
31 | +HICON g_hIconSmall; // アプリケーションアイコン(16x16)のハンドル | |
31 | 32 | HMENU g_hMenu; // メニュー(非表示)のハンドル |
32 | 33 | HMENU g_hSubMenu; // ポップアップメニューのハンドル |
33 | 34 | HMENU g_hListMenu; // 設定一覧ポップアップメニューのハンドル |
@@ -982,7 +983,7 @@ | ||
982 | 983 | nid.uID = TTERM_ICON; |
983 | 984 | nid.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE; |
984 | 985 | nid.uCallbackMessage = WM_TMENU_NOTIFY; |
985 | - nid.hIcon = g_hIcon; | |
986 | + nid.hIcon = g_hIconSmall; | |
986 | 987 | lstrcpy(nid.szTip, "TeraTerm Menu"); |
987 | 988 | |
988 | 989 | ::Shell_NotifyIcon(dwMessage, &nid); |
@@ -2312,7 +2313,8 @@ | ||
2312 | 2313 | ::EndDialog(hWnd, FALSE); |
2313 | 2314 | } |
2314 | 2315 | SetDlgPos(hWnd, POSITION_CENTER); |
2315 | - ::SetClassLong(hWnd, GCL_HICON, (LONG) g_hIcon); | |
2316 | + PostMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)g_hIcon); | |
2317 | + PostMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM)g_hIconSmall); | |
2316 | 2318 | CreateTooltip(); |
2317 | 2319 | crText = ::GetSysColor(COLOR_WINDOWTEXT); |
2318 | 2320 | crBkgnd = ::GetSysColor(COLOR_WINDOW); |
@@ -2411,7 +2413,9 @@ | ||
2411 | 2413 | switch(uMsg) { |
2412 | 2414 | case WM_INITDIALOG: |
2413 | 2415 | SetDlgPos(hWnd, POSITION_CENTER); |
2414 | - ::SetClassLong(hWnd, GCL_HICON, (LONG) g_hIcon); | |
2416 | + PostMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)g_hIcon); | |
2417 | + PostMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM)g_hIconSmall); | |
2418 | + SendDlgItemMessage(hWnd, IDC_TTPMENU_ICON, STM_SETICON, (WPARAM)g_hIcon, 0); | |
2415 | 2419 | InitVersionDlg(hWnd); |
2416 | 2420 | return TRUE; |
2417 | 2421 | case WM_COMMAND: |
@@ -2451,7 +2455,8 @@ | ||
2451 | 2455 | |
2452 | 2456 | switch(uMsg) { |
2453 | 2457 | case WM_CREATE: |
2454 | - ::SetClassLong(hWnd, GCL_HICON, (LONG) g_hIcon); | |
2458 | + PostMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)g_hIcon); | |
2459 | + PostMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM)g_hIconSmall); | |
2455 | 2460 | SetDlgPos(hWnd, POSITION_CENTER); |
2456 | 2461 | ::ShowWindow(hWnd, SW_HIDE); |
2457 | 2462 | SetTaskTray(hWnd, NIM_ADD); |
@@ -2576,6 +2581,7 @@ | ||
2576 | 2581 | WNDCLASS winClass; |
2577 | 2582 | char uimsg[MAX_UIMSG]; |
2578 | 2583 | DWORD dwErr; |
2584 | + int fuLoad = LR_DEFAULTCOLOR; | |
2579 | 2585 | |
2580 | 2586 | // インストーラで実行を検出するために mutex を作成する (2006.8.12 maya) |
2581 | 2587 | // 2重起動防止のためではないので、特に返り値は見ない |
@@ -2586,9 +2592,14 @@ | ||
2586 | 2592 | |
2587 | 2593 | GetUILanguageFile(UILanguageFile, sizeof(UILanguageFile)); |
2588 | 2594 | |
2589 | - g_hI = hI; | |
2590 | - g_hIcon = ::LoadIcon(g_hI, (LPCSTR) TTERM_ICON); | |
2595 | + g_hI = hI; | |
2591 | 2596 | |
2597 | + if (is_NT4()){ | |
2598 | + fuLoad = LR_VGACOLOR; | |
2599 | + } | |
2600 | + g_hIcon = (HICON)::LoadImage(g_hI, MAKEINTRESOURCE(TTERM_ICON), IMAGE_ICON, 32, 32, fuLoad); | |
2601 | + g_hIconSmall = (HICON)::LoadImage(g_hI, MAKEINTRESOURCE(TTERM_ICON), IMAGE_ICON, 16, 16, fuLoad); | |
2602 | + | |
2592 | 2603 | memset(&winClass, 0, sizeof(winClass)); |
2593 | 2604 | winClass.style = (CS_BYTEALIGNCLIENT | CS_BYTEALIGNWINDOW | CS_DBLCLKS); |
2594 | 2605 | winClass.lpfnWndProc = WinProc; |