修改MFC主窗口界面標題和圖標的方法


在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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM