1. 程式人生 > >MFC單文件修改標題和標題圖示

MFC單文件修改標題和標題圖示

一.修改標題

在doc類中OnNewDocument函式修改,新增修改的標題,如下:

BOOL CKTLXSubjectShowDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;

SetTitle(_T("測試標題"));

return TRUE;
}

二.修改標題後半部分

單文件標題通常會有兩部分組成,例如:標題名稱—工程名稱,修改StringTable的IDR_MAINFRAME的標題,將第一個\n之前的字串替換為

標題\n\nTestSingleTitle\n\n\nTestSingleTitle.Document\nTestSingleTitle.Document


三.掉標題的後半部分

方法1:在CTestSingleTitleApp::InitInstance()中呼叫如下語句m_pMainWnd->SetWindowText(_T("標題"));或在其他地方用(AfxGetMainWnd())->SetWindowText(_T("標題"));也可以得到相同的結果。

方法2:可以通過利用CWnd::SetWindowText即:void SetWindowText( LPCTSTR lpszString );過載CFramWnd類的OnUpdateFrameTitle函式

void CMainFrame::OnUpdateFrameTitle(BOOL bAddToTitle)
{
    //
 TODO: 在此新增專用程式碼和/或呼叫基類     SetWindowText(_T("標題"));
    CFrameWnd::OnUpdateFrameTitle(bAddToTitle);
}

 方法3:在CMainFrame的PreCreateWindow函式中修改視窗風格:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
          cs.style &= ~(LONG) FWS_ADDTOTITLE;
          return CFrameWnd::PreCreateWindow(cs);
}

PS:

多文件中修改標題的前半部分和單文件一樣

去掉標題的前半部分:

在CMainFrame的PreCreateWindow函式中修改視窗風格:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
          cs.style &= ~(LONG) FWS_ADDTOTITLE;
          return CFrameWnd::PreCreateWindow(cs);
} 修改標題的後半部分: 在上面函式中新增一行:m_strTitle = "標題 ";