唯美的两个字店名:MFC之修改单文档窗口标题

来源:百度文库 编辑:中财网 时间:2024/04/28 02:10:42
http://blog.pfan.cn/xman/34012.html 

   首先我们启动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之前的部分。 运行结果如下: 
 (#)