2011-10-05 68 views
3

我原本決定IDI_ICON1將是一個非常適合我的程序:的Win32:更改程序圖標

wndclass.hIcon   = LoadIcon (HINST_THISCOMPONENT, MAKEINTRESOURCE(IDI_ICON1)); 

中的圖標出現在標題菜單的左上角爲我的主窗口並提供。 exe文件在Windows資源管理器中。

我決定我喜歡IDI_ICON2更好,所以我改變:

wndclass.hIcon   = LoadIcon (HINST_THISCOMPONENT, MAKEINTRESOURCE(IDI_ICON2)); 

現在ICON2出現在標題菜單的左上角,但在Windows資源管理器的圖標仍顯示爲ICON1。我錯過了什麼?

+3

這可能是由於緩存。嘗試移動到其他文件夾或重命名它。否則請嘗試重新啓動。 – Mysticial

+0

我剛剛重新啓動並重新構建應用程序,但仍顯示icon1。我還將該程序複製到另一個文件夾中,並仍然是icon1。這個窗口類的字段是Win32中唯一處理程序圖標的區域嗎? – user974967

+0

然後我想我猜對了...... XD – Mysticial

回答

5

Explorer在您的可執行文件中佔用第一個圖標。那將是ID最低的那個。嘗試管理資源,以便將IDI_ICON2定義爲比IDI_ICON1更低的整數。

+0

看來你是對的。我交換了圖標的ID,並且icon1似乎是在資源管理器中顯示的圖標,而不管窗口類中設置的圖標如何。感謝您的建議。 – user974967

+0

@ user974967:只是想澄清一下,窗口類與可執行文件及其資源無關。 –

+0

.rc文件使用資源編譯器進行編譯,然後與可執行文件鏈接。它是否正確?代碼中處理圖標(我知道)的唯一區域就是窗口類的設置。但是,我想這只是確定標題欄中顯示的圖標。 – user974967