在VS2010下新建一個MFC的多文檔應用程序,程序默認的標題是“文檔名-工程名”。圖標默認的是寫着MFC的三個方塊。但在很多軟件中都不是使用的默認設置,開發者們都將標題和圖標改過,以符合項目要求,而且直觀好看。
一.修改標題
標題分為前后兩部分,前面一部分默認是文檔名,后面一部分默認是工程名,比如我新建一個叫做UITEST的工程,那標題就是“UITEST1-UITEST”。后面都用這個工程為例。
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