您的位置:首页 > 其它

更改单文档应用程序主框架Frame的标题

2011-08-02 17:21 369 查看
方法一:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) //重写这个类

{

// 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的值就不起作用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: