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 = "标题 ";

你可能感兴趣的:(MFC)