标题栏文字的更改

标题栏文字的更改文档标题的更改方法一 单文档接口 SDI 类型窗口标题的改变 首先 我们来看 WindowsSDI 类型窗口标题栏的结构形式 结合具体例子说明 用 VC 的 AppWizard 创建一个名为 SDITitle 的单文档类型的工程 创建完工程后 编译运行该工程 程序主窗口标题形式如下 文档标题主窗口标题 1 文档标题的改变 文档标题在是由工程中相应的文档类所控制的 因此我们可以利用

文档标题的更改方法

一·单文档接口(SDI)类型窗口标题的改变
   首先,我们来看Windows SDI类型窗口标题栏的结构形式。结合具体例子说明:用


VC的AppWizard创建一个名为“SDITitle”的单文档类型的工程,创建完工程后,编译运行该工程,程序主窗口标题形式如下:
   文档标题 主窗口标题
   1·文档标题的改变
  文档标题在是由工程中相应的文档类所控制的,因此我们可以利用




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





















其实,还有几种方法也能更改标题栏的文字(1.C*APP 中的InitInstance() 用SetWindowText(),2.DOC类中重载SetTitle()函数),大家有兴趣的话可以自己去试试。
   二·对多文档接口(MDI)类型窗口标题的改变
   MDI类型窗口标题中,主窗口标题和文档标题的次序,和SDI类型窗口中次序是不同的。结合具体例子说明,用VC的AppWizard创建一个名为“MDITitle”的多文挡类型的工程。创建完工程后,编译运行该工程,主窗口标题形式如下:主窗口标题(当前打开的)文档标题
   1·文档标题的改变
   MDI类型窗口的文档标题也是由相应的文档类控制的。改变方法同SDI类型窗
口类似,要改变标题,只要在相应的文档类中利用SetTitle()函数来改变文档标
题。
   2·主窗口标题的改变
   MDI类型主窗口标题的改变方法同SDI类型窗口类似。改变主窗口标题也有两种方法,通过改变IDR_MAINFRAME或m_strTitle的值就可实现改变主窗口标题的目的。同样,改变了m_strTitle值后,IDR_MAINFRAME的值就不起作用。
   3·子窗口标题的改变
  在默认情况下,MFC自动将子窗口标题设为该子窗口所打开的文档标题。但实际上,子窗口标题与该子窗口标题所打开的文档标题并不是同一回事。我们可做如下实验:
   (利用ResourceView打开资源,修改String Table中的IDR_MAINFRAME的值为“标题栏更改”,使得主窗口标题变成“标题栏更改”。
   (将BOOL CMDITitleDoc::OnNewDocument()函数改为:
   BOOL CMDITitleDoc::OnNewDocument()
   {

if (!CDocument::OnNewDocument())
return FALSE;
static int count=0;
char message[10];
wsprintf (message,”%s%d”,”文档”,count);
SetTitle (message);
count++;
return TRUE;
   }
   设置文档标题为“文档0”、“文档1”… 。
   (r)将CChildFrame ::PreCreateWindow() 函数改为:
BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
   {

cs.style &=~ (LONG) FWS_ADDTOTITLE;
return CMDIChildWnd::PreCreateWindow(cs);
   }
改变窗口类型,这步工作必须做。常量FWS_ADDTOTITLE是在文件/ msdev / mfc /include /afxwin.h中定义。
   (在CMDITitleView类中增加OnInitialUpdate () 函数:
void CMDITitleView::OnInitialUpdate()
   {

CView::OnInitialUpdate();
GetParent()->SetWindowText(GetDocument()->GetTitle()+”-vc窗口标题示例”);
   }这样,子窗口的标题栏的形式就为“文档名(- vc窗口标题示例”。 




































版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176245.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午10:23
下一篇 2026年3月26日 下午10:23


相关推荐

  • RHCE是否还值得考取?

    RHCE是否还值得考取?工作了也已经有了 2 年左右的时间 平常也会接触到各种各样的技术 但是老本行还是运维 那么对于 Linux 还是比较感兴趣的 也加了各种各样的技术交流群 也买了各种各样的学习书籍 自然而然得也知道了 RHCE 认证 公司里的同事也都知道 随着工作年限的增长 大家也都在想办法提升自己的实力 来获得涨薪或者跳槽的资本 有的同事觉得考一个国际的认证 会更加的有说服力 有的则不以为然 觉得有证书并不能达到预期的效果

    2026年3月19日
    2
  • JsonPath文档

    JsonPath文档1.介绍本文翻译自官方文档,JsonPath表达式通常是用来路径检索或设置Json的。其表达式可以接受“dot–notation”和“bracket–notation”格式,例如$.store.book[0].title、$[‘store’][‘book’][0][‘title’]2.操作符符号 描述 $ 查询的根节点对象,用于表示一个json数据,可以是数组或对象…

    2022年6月15日
    135
  • Intellij IDEA与Eclipse对比

    Intellij IDEA与Eclipse对比IntellijIDEA 与 Eclipse 对比这是一个比较热议的话题 因为这两款 IDE 都很优秀 总体给人的感觉就是 在没有接触到 IntellijIDEA 之前 写 java 代码如果没有 eclipse 这个代码还怎么写 使用了 IntellijIDEA 之后 会觉得原来还有如此智能的 IDE 使用 IDE 工具的目的 是为了提升编码效率 如果你已深深习惯了 eclip

    2026年3月27日
    2
  • Spring整合Sharding-JDBC分库分表详情

    Spring整合Sharding-JDBC分库分表详情Spring整合Sharding-JDBC分库分表详情一、概述最初线上系统的业务量不是很大,业务数据量并不大,比如说单库的数据量在百万级别以下(事实上千万级别以下都还能支撑),那么MySQL的单库即可完成任何增/删/改/查的业务操作。随着业务的发展,单个DB中保存的数据量(用户、订单、计费明细和权限规则等数据)呈现指数级增长,那么各种业务处理操作都会面临单DB的IO读写瓶颈带来的性能问题。S…

    2022年6月14日
    29
  • java mencoder_java 用ffmpeg和mencoder进行视频转码

    java mencoder_java 用ffmpeg和mencoder进行视频转码1 准备阶段 首先需要 ffmpeg exe 和 mencoder exe java 需要调用这两个文件来进行转码 drv43260 dll pncrt dll pthreadGC2 dll 为动态链接库必须有 否则 rm 格式文件利用 mencoder 转换 avi 时会报如下错误 Openingvideo realvid RealVideodec

    2026年3月18日
    2
  • 你的微信能用 Openclaw 了!无需折腾环境,5分钟保姆级接入指南

    你的微信能用 Openclaw 了!无需折腾环境,5分钟保姆级接入指南

    2026年3月15日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号