原文:如何修改MFC的圖標
修改左上角的圖標和任務欄里圖標
在對話框構造函數中
CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/) : CDialog(CTestDlg::IDD, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); }
改過后:
CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/) : CDialog(CTestDlg::IDD, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON1); }
將最后的IDR_MAINFRAME改為自己的圖標即可,上面改為了IDI_ICON1,更改的圖標需要先導入或者添加進資源icon里,將默認的mfc圖標換成自己的。
修改生成EXE文件圖標
方法一:
要更改圖標,在resource.h中打開之后可以看到各個資源的ID值,一般mfc自動生成的IDR_MAINFRAME是128,自己添加的會大於128,順序后延,編譯時默認將ID最小的作為exe的圖標,所以只要我們將其改之就可以了,還是上面的對話框,將IDI_ICON1改為128,將IDR_MAINFRAME改為其他的大一點的數不能太大了,因為可能會有其他用處,然后重新rebuild,這時就可以看到exe圖標變成了自己的IDI_ICON1的圖標了。
方法二:
1、在程序res文件夾下,刪除MFC圖標文件,加入自己的圖標文件;
2、在圖標IDR_MAINFRAME的屬性對話框中,修改File name路徑為自己的圖標文件。
注:(1)一定要先刪除原文件,否則會把你的圖標文件覆蓋掉;
(2)完成后在資源視圖中可能發現還是原來的MFC圖標,但編譯后exe文件的圖標已經變成自己的了。
方法三:
在.rc文件中,可以修改默認圖標路徑來修改生成EXE文件圖標。
IDR_MAINFRAME ICON "res\\Test.ico"
修改后:
IDR_MAINFRAME ICON "res\\Test1.ico"
修改托盤中EXE文件圖標
可以用NOTIFYICONDATA來實現。
NOTIFYICONDATA _tnd; _tnd.cbSize=sizeof(NOTIFYICONDATA); _tnd.hWnd = this->GetSafeHwnd(); _tnd.uID = 0; _tnd.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP | NIF_INFO; _tnd.dwInfoFlags = NIIF_INFO; // add an icon to a balloon ToolTip _tnd.uTimeout = uTimeout; CString sStatusMsg = szMsg; if (“修改條件”) { _tnd.hIcon = theApp.LoadIcon(IDI_SUCCESSLOGIN); }