面对现实,超越自己
逆水行舟,不进则退
posts - 269,comments - 32,trackbacks - 0
一、修改标题
方法1:在CMainFrame中PreCreateWindow(CREATESTRUCT& cs)进行更改,如下:
BOOL CKTLXSubjectShowFrame::PreCreateWindow(CREATESTRUCT& cs)
{
    // TODO: Add your specialized code here and/or call the base class
    cs.style &=~WS_MAXIMIZEBOX;//禁用最大化按钮
    cs.style &=~WS_SIZEBOX;
    cs.style &=~FWS_ADDTOTITLE;

    cs.lpszName = _T("测试标题");
    cs.cx = 970;
    cs.cy = 650;
    return CXTPFrameWnd::PreCreateWindow(cs);
}

方法2:在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:在CMainFramePreCreateWindow函数中修改窗口风格:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
          cs.style &= ~(LONG) FWS_ADDTOTITLE;
          return CFrameWnd::PreCreateWindow(cs);
}
posted on 2013-12-13 10:28 王海光 阅读(5752) 评论(1)  编辑 收藏 引用 所属分类: MFC

FeedBack:
# re: MFC 修改单文档标题
2015-09-22 10:59 | 1223
6666
  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理