VC下修改单文档应用程序的标题
2017-12-10 16:47
281 查看
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\nTitleDocument”改为
“标题改变示例\n\nTitle\n\n\nTitle.Document\nTitleDocument”。这样
改变后,主窗口标题栏的形式就为“...-标题改变示例”。
第二种方法:
具体改变方法如下:在框架类mainframe的PreCreateWindow函数前面加入一条语句:修改m_strTile的值,将其赋值成要改变的标题字符串。例:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
m_strTitle = "开发工具"; //“开发工具”即为新标题
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
}
这改变后,标题栏的形式就为“...-开发工具”。
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的值就不起作用。
3.整个标题的修改:
先在框架类mainframe的PreCreateWindow函数前面加入一条语句:cs.style &= ~FWS_ADDTOTITLE;则函数变为:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &= ~FWS_ADDTOTITLE; // 把cs.style中的FWS_ADDTOTITLE风格去掉
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
}
然后再在mainframe的OnCreate中使用语句:“SetWindowText("XXX");”, 则整个标题内容变为:XXX。
文章转载地址:http://blog.csdn.net/a379039233/article/details/8234396
文档标题在是由工程中相应的文档类所控制的,我们可做如下实验。运行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\nTitleDocument”改为
“标题改变示例\n\nTitle\n\n\nTitle.Document\nTitleDocument”。这样
改变后,主窗口标题栏的形式就为“...-标题改变示例”。
第二种方法:
具体改变方法如下:在框架类mainframe的PreCreateWindow函数前面加入一条语句:修改m_strTile的值,将其赋值成要改变的标题字符串。例:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
m_strTitle = "开发工具"; //“开发工具”即为新标题
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
}
这改变后,标题栏的形式就为“...-开发工具”。
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的值就不起作用。
3.整个标题的修改:
先在框架类mainframe的PreCreateWindow函数前面加入一条语句:cs.style &= ~FWS_ADDTOTITLE;则函数变为:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &= ~FWS_ADDTOTITLE; // 把cs.style中的FWS_ADDTOTITLE风格去掉
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
}
然后再在mainframe的OnCreate中使用语句:“SetWindowText("XXX");”, 则整个标题内容变为:XXX。
文章转载地址:http://blog.csdn.net/a379039233/article/details/8234396
相关文章推荐
- VC如何更改单文档应用程序的标题
- 改变VC++应用程序单文档标题图标
- VC如何更改单文档应用程序的标题
- 如何修改单文档应用程序的标题
- 应用程序各种标题的改变方法 vc多文档应用程序窗口初始化
- vc多文档应用程序窗口初始化,关闭子框架,标题,动态切换
- MFC 修改 单文档 SDI 窗体 标题
- VC++修改注册表使应用程序实现开机自动启动
- 单文档 去掉菜单栏、修改标题
- MFC之修改单文档窗口标题
- VS2005 单文档中修改标题和图标
- iOS中修改vc标题的方法及区别
- 如何改变VC程序的标题和文档标题
- 修改单文档程序的标题
- hosts文件无法修改怎么办 保存文档失败,请检查文件是否被另一个应用程序打开了
- VC修改应用程序图标(MFC好使)
- VC小技巧收集————如何修改窗口标题
- VC++6.0禁止改变单文档窗口大小,修改标题的实现
- 修改VC程序的标题的方法
- 增加工具栏提示&修改程序字体&设置文档标题&控制窗口显示&更新菜单选中/不选中状态