WM_SETICONを使用してアプリケーションのアイコンを変更しています。これは、プログラムがVisualStudioデバッガまたはコマンドライン経由で実行されているときに機能しますが、Windows 7のデスクトップショートカットから起動したときに間違ったタスクバーアイコンを使用します。プログラムをタスクバーに固定してから固定解除すると、アイコンが正しく表示されます。ショートカット経由でプログラムを起動したときにWM_SETICONが機能しない
HICON icon = (HICON) LoadImage(NULL, iconStr, IMAGE_ICON, 32, 32, LR_LOADFROMFILE| LR_SHARED);
SendMessage(hwnd, WM_SETICON, ICON_BIG, (LPARAM)icon);
SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)icon);
SendMessage(hwnd, WM_SETICON, ICON_SMALL2, (LPARAM)icon);
ショートカットによって起動について何かプログラムが古いキャッシュされたアイコンを使用してWM_SETICONを無視する原因になっているかのように思えます。また、プログラムのタイトルバーの横にある小さなアイコンも正しく更新されています。問題があるのはタスクバーのアイコンだけです。
アイコンをプログラムで設定する必要があります。コマンドラインに基づいて変更されるためです。誰もがこの仕事をする方法を知っていますか?ありがとう。