程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> VC++如何修改MFC窗口標題

VC++如何修改MFC窗口標題

編輯:關於C語言
 

MFC程序的默認的標題是“無標題-title”,其中title是應用程序的名稱,我們應如何修改MFC窗口標題來符合自己的要求?

MFC程序的文檔類中定義了一個虛函數SetTitle,用於設置窗口標題的前半部分,如果只是要修改“無標題”部分,可以重載文檔類的該函數。窗口標題的後半部分可以通過SetWindowText設置,也可以編輯字符串資源中的IDR_MAINFRAME字符串,將第一個\n之前的字符串替換掉即可,而如果你想把“無標題”部分除掉,則必須修該窗口的風格。

一、修改前半部分

1) 可以重載文檔類的虛函數SetTitle

void CTestDoc::SetTitle(LPCTSTR lpszTitle)

{

CDocument::SetTitle(L"你的標題");

}

也可以在 CTestDoc::OnNewDocument()中添加SetTitle(L"你的標題");

二、修改後半部分

1) 修改資源字符串:

將資源文件中的IDR_MAINFRAME修改為

修改此處\n\nChange\n\n\nChangeTitle.Document\nChange Document

資源字符串中各子串的含義可以參考:IDR_MAINFRAME字符串資源中各子串的含義

2) 使用框架窗口類的SetWindowText(L"你的標題"):

在應用程序類CTestApp::InitInstance()中調用如下語句

m_pMainWnd->SetWindowText(L"你的標題");

或者在其他地方用AfxGetMainWnd()->SetWindowText(L"你的標題");

3) 如果您想除掉標題中間的“-”,

可以通過重CFramWnd類的OnUpdateFrameTitle函數,這個函數在VC提供的幫助文件中找不到,必須手工添加

virtual void OnUpdateFrameTitle(BOOL NaDa);

void CMainFrame.:OnUpdateFrameTitle(BOOL NaDa)

{

CString csAppName;

csAppName.Format(AFX_IDS_APP_TITLE);

SetWindowText(csAppName);

}

此時顯示的結果只有字符串資源AFX_IDS_APP_TITLE所定義的字符串

4) 是在CMainFrame的PreCreateWindow函數中修改窗口風格:

BOOL CMainFrame.:PreCreateWindow(CREATESTRUCT& cs)

{

cs.style. &= ~(LONG) FWS_ADDTOTITLE;

return CFrameWnd::PreCreateWindow(cs);

}

使用此方法,窗口的標題只顯示IDR_MAINFRAME字符串中第一個\n之前的部分


修改MFC標題欄上的圖標

HICON m_hIcon;

在MainFrm的OnCreate()裡

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

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

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


IDR_MAINFRAME字符串資源中各子串的含義

IDR_MAINFRAME字符串資源中包含7個子串,分別以\n結束,即如下格式:

<windowTitle>\n<docName>\n<fileNewName>\n<filterName>\n<filterExt>\n<regFileTypeId>\n<regFileTypeName>\n

(1)CDocTemplate::windowTitle,主窗口標題欄上的字符串,MDI程序不需要指定,將以IDR_MAINFRAME字符串為默認值。

(2)CDocTemplate::docName,缺省文檔的名稱。如果沒有指定,缺省文檔的名稱是無標題。

(3)CDocTemplate::fileNewName,文檔類型的名稱。如果應用程序支持多種類型的文檔,此字符串將顯示在"File/New"對話框中。如果沒有指定,就不能夠在"File/New"對話框處理這種文件。

(4)CDocTemplate::filterName,文檔類型的描述和一個適用於此類型的通配符過濾器。這個字符串將出現在“File/Open”對話框中的文件類型列表框中。要和CDocTemplate::filterExt一起使用。

(5)CDocTemplate::filterExt,文檔的擴展名。如果沒有指定,就不能夠在“File/Open”

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved