首先我们启动Visual Studio2005,新建项目Test利用MFC App Wizard 生成MFC应用程序框架。程序运行后显示如下:
修改窗口标题字符串“无标题-Test”
<1> 修改前半部分
方法一:更改StringTable的IDR_MAINFRME的标题,将第一个\n之和第二个\n之间添加字符串fan为:
Test\nfan\nTest\n\n\nTest.Document\nTest.Document
方法二:在 CEX041Doc::OnNewDocument()中添加SetTitle("我的程序");
BOOL CTestDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// TODO: 在此添加重新初始化代码
SetTitle(L"fan");
// (SDI 文档将重用该文档)
return TRUE;
}
方法三:重载虚函数SetTitle
void CTestDoc::SetTitle(LPCTSTR lpszTitle)
{
// TODO: 在此添加专用代码和/或调用基类
CDocument::SetTitle(L"fan");
}
运行结果如下:
<2>修改后半部分
修改StringTable的IDR_MAINFRME的标题,将第一个\n之前的字符串Test替换为XJTU:XJTU\nfan\nEX041\n\n\nEX041.Document\nEX041.Document
运行结果如下:
<3>去掉标题中间的“-”
方法一:可以通过利用CWnd::SetWindowText即:void SetWindowText( LPCTSTR lpszString );在C EX041App::InitInstance()中调用如下语句m_pMainWnd->SetWindowText(L"XJTU");或在其他地方用(AfxGetMainWnd())->SetWindowText(L"XJTU");也可以得到相同的结果。
方法二:重载CFramWnd类的OnUpdateFrameTitle函数,这个函数在VC提供的帮助文件中找不到,利用类向导重写virtual void OnUpdateFrameTitle(BOOL bAddToTitle)
void CMainFrame::OnUpdateFrameTitle(BOOL bAddToTitle)
{
// TODO: 在此添加专用代码和/或调用基类
SetWindowText(L"XJTU");
CFrameWnd::OnUpdateFrameTitle(bAddToTitle);
}
方法三:在CMainFrame的PreCreateWindow函数中修改窗口风格:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &= ~(LONG) FWS_ADDTOTITLE;
return CFrameWnd::PreCreateWindow(cs);
}
使用此方法,窗口的标题只显示IDR_MAINFRAME字符串中第一个\n之前的部分。
运行结果如下:
评论