A. MFC的框架上總是有MFC這個圖標,怎樣才能改變
在ResoureView(資源視圖)裡面,找到ICON(圖標)下的IDR_MAINFRAME這個圖標,雙擊,右邊窗口會出項一個放大的圖標,選擇畫筆和顏色,修改吧。
B. Visual C++ 6.0 里MFC中 要改變 程序圖片(不要默認的應用程序圖標)怎麼添加 或 改變
樓上方法可行,但由於MFC中有多個圖標在不同的狀態下使用,如在windows資源管理器中不同顯示模式時的大圖標、小圖標,在你的MFC應用程序主框架窗體標題攔里顯示的圖標,在你主視窗view標題攔里顯示的圖標都可以不同(向導默認是相同的圖標),因此,VC中比較正規的做法是你點擊應用程序工程項目->資源文件夾-> 工程文件名.rc ->icon,在裡面有不同情況下的大小icon,你可以直接點擊打開圖形編輯修改圖標,或從其他文件導入來改變你的程序圖標。 另外,你可以在此增加任何新的iocn資源,編輯或導入圖形,這些資源都會有個ID,你可以用這個ID在程序中載入使用這些圖標。 在這里編輯更新的圖標,你編譯時會自動編譯這個rc文件,並將這些圖標自動嵌入你的執行文件里。 除此之外,你的程序還可以通過特定的ID直接使用windows系統內置的ICON,這些ICON的ID你可以通過查閱相關手冊,使用系統內置資源的好處是,它是共享資源,不會佔用物理空間。
C. VC++ MFC程序更改圖標問題
方法一:找一張ICO圖標,替換programname/res/programname.ico文件,就可以啦,這時候運行後得到的圖標可能還是原來的默認圖標,這時候你只要把工程目錄下的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
這兩行代碼就將應用程序的圖標設置好了。
D. 怎樣修改mfc中應用程序標題的圖標
1.修改前半部分:
可以重載文檔類的虛函數SetTile,如下
void CTestDoc::SetTitle(LPCTSTR lpszTitle)
{
CDocument::SetTitle(L"你的標題");
}
也可以在UITESTDoc.app中,在BOOL CUITESTDoc::OnNewDocument()函數中添加SetTitle(L"你的標題")
2.修改後半部分:
改資源字元串
在資源視圖的String Table中找到IDR_MAINFRAME,將其標題改為你想要的標題
3.去掉-:
去掉標題中間的-,只顯示後面的標題,
方法1:通過重載CFramWnd類的OnUpdateFrameTitle函數
virtual void OnUpdateFrameTitle(BOOL NaDa);
void CMainFrame.:OnUpdateFrameTitle(BOOL NaDa)
{
CString csAppName;
csAppName.Format(AFX_IDS_APP_TITLE);
SetWindowText(csAppName);
}
此時顯示的結果只有字元串資源AFX_IDS_APP_TITLE所定義的字元串,當然也可以把SetWindowText(csAppName)中的csAppName換成你想要的標題字元串。
方法2:在CMainFrame的PreCreateWindow函數中修改窗口風格
BOOL CMainFrame.:PreCreateWindow(CREATESTRUCT& cs)
{
cs.style. &= ~(LONG) FWS_ADDTOTITLE;
return CFrameWnd::PreCreateWindow(cs);
}
使用此方法,窗口的標題只顯示IDR_MAINFRAME字元串中第一個\n之前的部分
二.修改圖標
替換默認的MFC圖標,先要自己畫一個符合格式要求的點陣圖或從外部導入一個圖標,修改其屬性名,假設為IDI_IDI1。在MainFrm的OnCreate()里添加如下代碼:
HICON m_hIcon;
m_hIcon = AfxGetApp()->LoadIcon(IDI_IDI1);
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
其中big icon是32×32,small icon是16×16