修改MFC的圖標

 

很多時候我們對於MFC框架應用程序的默認圖標十分不滿意,所以我們來將把它換掉。

默認的VC6.0下的MFC圖標和VC2005中的MFC圖標分別如下:

       

很多朋友會問我怎麼把圖標換掉,我看很多人寫很多代碼,出很多錯,其實對於MFC框架應用程序我們可以不寫一行代碼把那個默認的圖標換掉。找一張ICO圖標,替換programname/res/programname.ico文件,就可以啦,這時候你運行後得到的圖標可能還是原來MFC的默認圖標,這時候你只要把工程目錄下的Debug和Release文件刪除掉,重新編譯生成就能得到更換圖標後的程序。或者直接RebuildAll,再運行,怎麼樣很簡單吧。

當然,你如果你在你的工程裏操作也沒有問題,在工作區的resorce頁中的Icon中把ID爲IDR_MAIN的圖標資源刪除,再導入自己製作的圖標資源,把資源ID改爲IDR_MAIN就OK啦。

上面這個的工作十分簡單,但是如果要在程序中寫代碼改變我們應用程序的圖標,比如有時候我們要在程序中動態改變程序的標題欄、任務欄圖標或是托盤的圖標,那就要花點功夫了。其實也不是很難,主要用幾個函數搞定,如果是MFC主要就是 LoadIcon和 SetIcon。

比如我們在OnInitDialog或是OnCreate中加入:

AfxGetApp()->LoadIcon(IDI_ICON1);

SetIcon(ico,true);

SetIcon(ico,false);

另外你可能要問,MFC程序默認是怎麼加載它的圖標的,其實很簡單,在主對話框的構造函數中有這樣一句:

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAIN);

這就是加載默認圖標的,而在OnInitDialog初始化函數中有這兩行代碼:

SetIcon(m_hIcon, TRUE);   // Set big icon

SetIcon(m_hIcon, FALSE);  // Set small icon

這兩行代碼就將應用程序的圖標設置好了。到這裏聰明的你應該能觸類旁通了吧,其實在MFC中更換或設置圖標的方式有很多種,像QQ這樣動態更換圖標也不是一件太難的事。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章