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

方法一:

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的值就不起作用。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值