正文

MFC/Windows编程之修改窗口标题2008-04-08 15:38:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xman/34012.html

分享到:

   首先我们启动Visual Studio2005,新建项目Test利用MFC App Wizard 生成MFC应用程序框架。程序运行后显示如下:

修改窗口标题字符串“无标题-Test

   <1> 修改前半部分

  方法一:更改StringTableIDR_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>修改后半部分

修改StringTableIDR_MAINFRME的标题,将第一个\n之前的字符串Test替换为XJTUXJTU\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);

}

 方法三:在CMainFramePreCreateWindow函数中修改窗口风格:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
          cs.style &= ~(LONG) FWS_ADDTOTITLE;
          return CFrameWnd::PreCreateWindow(cs);
}
使用此方法,窗口的标题只显示IDR_MAINFRAME字符串中第一个\n之前的部分。

运行结果如下: 

阅读(8166) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册