如何修改MFC視窗標題

來源:互聯網
上載者:User

如何修改MFC視窗標題

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之前的部分  

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.