MFC单文档修改标题和标题图标

本文介绍如何使用MFC在不同场景下定制文档标题,包括设置标题、修改标题后半部分及去掉后半部分的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.修改标题

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值