应用程序各种标题的改变方法.docx
- 文档编号:4180955
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:5
- 大小:62.36KB
应用程序各种标题的改变方法.docx
《应用程序各种标题的改变方法.docx》由会员分享,可在线阅读,更多相关《应用程序各种标题的改变方法.docx(5页珍藏版)》请在冰豆网上搜索。
应用程序各种标题的改变方法
应用程序各种标题的改变方法
应用程序各种标题的改变方法
摘要:
讨论基于MFC类库的Windows应用程序设计中,应用程序各种标题的改变方法。
关键词:
MFCWindows编程标题VisualC++
0引言
有一个演示VC++中的消息处理的单文档应用程序。
该程序开始运行的情况如下:
窗口中的初始文档标题竞显示为Untitled,实在不尽人意。
有些时候,确实需要改变自编Windows应用程序窗口的标题。
比如,想编一个标题名为"Communicationsoft的软件。
虽然在Windows95或WindowsNT下,VisualC++(以下简称VC)可以生成以"Communicationsoft为名的工程,但该工程下的C++类的名称也要带上这么多的字符,
1.1文档标题的改变
既然文档标题是由工程中相应的文档类所控制的,了解这一点,就可在相应的文档类中,利用SetTitle()函数来改变文档标题。
例:
改变CExam9Doc:
:
onNewDocument()函数为:
BOOLCExam9Doc:
:
OnNewDocument()
{
if(!
CDocument:
:
OnNewDocument())
returnFALSE-
SetTitle("文档标题");
returnTRUE;
}
运行程序,则每次选择选单中的"文件"的"新建"选项时,标题就变成"文档标题-Exam9”
1.2主窗口标题的改变
主窗口的标题默认是工程的文件名,正如前面Appvvazied生成的Exam9工程执行后,标题栏的形式总为"文档标题-Exam9。
改变主窗口的标题方法有两种:
第一种方法:
利用ResourceView打开工程的资源,修改StringTable中的
IDR_MAINFRAME的值。
将原来的"Exam9/n/nExam9/nEXMFile(*.exm)/n.exm/nExam9.Document/nExam9Document"改为"标题改变示例
/n/nExam9/nEXMFile(*.exm)/n.exm/nExam9.Document/nExam9Document"。
这样改变后,主窗口标题就变为"-标题改变示例"。
第二种方法:
具体改变方法如下:
改变CMainFrame的成员函数PreCreateWindowO为:
BOOLCMainFrame:
:
PreCreateWindow(CREATESTRUCT&cs)
{
m_strTitle="上海市卢湾区业余大学”;
returnCFrameWnd:
:
PreCreateWindow(cs);
}
这样改变后,主窗口标题的形式就为"-上海市卢湾区业余大学"。
M_strTile是CFrameWnd的保护成员(要得到m_strTile更详细的信息,请打开/msdev/mfc/include/afxwin.h文件)。
CMainFrame则是CFrameWnd类的派生类。
在这两种改变方法中,第二种方法优先级高。
也就是说,改变了m_strTitle的值后,IDR_MAlNFRAME的值就不起作用。
2对多文挡接口(MDI)类型窗口标题的改变
在MDI类型窗口中,主窗口标题和文档标题的次序,和SDl类型窗口中次序是不同的。
结合具体例子说明,用VC的AppWizard创建一个名为"MDITitle"的多文挡类型的工程。
创建完工程后,编译运行该工程,主窗口标题形式如下:
"主窗口标题-文档标题"。
2.l文挡标题的改变
MDI类型窗口的文档标题也是由相应的文档类控制的。
改变方法同SDI类型窗口类似,要改变标题,只要在相应的文档类中利用SetTitle()函数来改变文档标题。
2.2主窗口标题的改变
MDI类型主窗口标题的改变方法同SDI类型窗口类似。
改变主窗口标题也有两种方法,通过改变IDR_MAINFRAME或m_strTitle的值就可实现改变主窗口标题的目的。
同样,改变了m_strTitle值后,IDR_MAINFRAME的值就不起作用。
2.3子窗口标题的改变
在默认情况下,MFC自动将子窗口标题设为该子窗口所打开的文档标题。
但实际上,子窗口标题与该子窗口标题所打开的文档标题可以不一样。
可做如下改动:
利用ResourceView打开资源,修改StringTable中的IDR_MAINFRAME的值为"上海市卢湾区业余大学",使得主窗口标题变成"上海市卢湾区业余大学"。
并将BOOLCMDlTitleDoc:
:
OnNewDocument()函数改为:
BOOLCMDlTitleDoc:
:
OnNewDocument()
{
if(!
CDocument:
:
OnNewDocument())
returnFALSE;
staticintcount=0;
charmessage[10];
wsprintf(message,"%s%d","文档",count);
SetTitle(message);
count++;
returnTRUE;
}
通过以上修改,主窗口标题栏被设置为:
文档标题为"上海市卢湾区业余大学-文挡0"、"上海市卢湾区业余大学-文档1”……
一下针对子窗口标题的修改作如下改动:
将CChildFrame:
:
PrecreateWindow()函数改为:
BOOLCChiidFrame:
:
PrecreateWindow(CREATESTRUCT&cs)
cs.style&=~(LONG)FWS_ADDTOTlTLE;
returnCMDIChildWnd:
:
PrecreateWindow(cs);
}
要改变窗口类型,这步工作必须做。
常量问FWS_ADDTOTITLE是在文件/msdev/mfc/include/afxwin.h中定义。
在CMDlTitleView类中增加OnlnitialUpdate()函数:
voidCMDlTitleView:
:
OnlnitiaiUpdate()
{
CView:
:
OninitialUpdate();
Getparent()-〉SetWindowText(GetDocument()-)GetTitle()+”-上海卢湾区业余大学”);
}
这样,子窗口的标题栏的形式就为"文档名-上海卢湾区业余大学"。
参考资料:
[1]MichaeiMorrison:
SamsTechYourselfMFCin24Hours
[2]Davidkrugiinski:
ProgrammingMicrosoftVisualC++,FiHhEdition
[3]KateGregory:
SpecialEditionUsingVisualC++5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 应用程序 各种 标题 改变 方法