方法一:
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.style &= ~FWS_ADDTOTITLE; //去除文档名
SetTitle("天涯狂人"); //重新设置标题
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
return TRUE;
}
方法二:
先在PreCreateWindow把cs.style中的FWS_ADDTOTITLE风格去掉
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &= ~FWS_ADDTOTITLE;
return CFrameWnd::PreCreateWindow(cs) ;
}
然后在mainframe的oncreate中SetWindowText( "XXX ");
方法三:
在App初始化中加:
CWnd *m_pMainWnd;
m_pMainWnd=AfxGetMainWnd();
m_pMainWnd-> SetWindowText(_T( "TianMo "));
1·文档标题的改变
文档标题在是由工程中相应的文档类所控制的,我们可做如下实验。运行上面
AppWizard生成的程序SDITitle,选择选单中的“文件”“打开”选项,打开
“SDITitile.h”文件,则标题栏变成“SDITitle.h - SDITitle”。这一切动
作都是MFC类自动进行的。了解这一点,我们可在相应的文档类中,利用SetTitle ()
函数来改变文档标题。
例:改变CSDITitleDoc::OnNewDocument() 函数为:
BOOL CSDITitleDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
SetTitle ( " 文档标题 " );
return TRUE;
}
运行程序,则每次选择选单中的“文件”的“新建”选项时,文档标题就
变成 “文档标题- SDITitle”。
2·主窗口标题的改变
主窗口的标题默认是工程的文件名,正如前面AppWazied生成的SDITitle工程执
行后,标题栏的形式总为“(文档名)- SDITitle”。
改变主窗口的标题有两种:
第一种方法:
利用ResourceView打开工程的资源,修改String Table中的IDR_MAINFRAME的值。
将原来的“SDITitle/n/nTitle/n/n/nTitle.Document/nTitle Document”改为
“标题改变示例/n/nTitle/n/n /nTitle. Document/nTitle Document”。这样
改变后,主窗口标题栏的形式就为“((((-标题改变示例”。
第二种方法:
具体改变方法如下:
改变CSDIMainFrame的成员函数PreCreateWindow()为:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
m_strTitle = " 中国矿业大学 ";
return CFrameWnd::PreCreateWindow(cs);
}
这改变后,标题栏的形式就为“((((-中国矿业大学”。
m_strTile是CFrameWnd的保护成员(令人惊奇的是,Visual C++ Books Online 4.0
不显示类的保护和私有的成员及函数。所以在m_strTile处按F1键,得不到相应
的帮助。要得到m_strTile更详细的信息,请打开/ msdev / mfc /include /afxwin.h
文件)。CSDIMainFrame则是CFrameWnd类的派生类。
在这两种改变方法中,第二种方法优先级高。也就是说,改变了m_strTitle的值
后,IDR_MAINFRAME的值就不起作用。