如何在标题栏显示我定义的字符串?

sxtigerVC 2002-10-04 03:31:03
我在一个单文档结构中,用了分割窗口,我想在程序框架的标题栏(就是蓝条上)显示如“我的程序”之类的文字,请问如何做,我的程序是支持可拖放文档的,我在视图类中的OnDraw()中用了SetWindowText()但这种方法不行,请问还有什么其它方法,能改变。
  另外,如何在点击“新建”时,把“未知文档”等文档提示从标题栏中删除。
谢谢。
...全文
109 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
52001314 2002-10-04
  • 打赏
  • 举报
回复
在CMyDoc中的OnNewDocument()中加入
SetTitle (" 文档标题 " );

在CMainFrame中PreCreateWindow()改为
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
m_strTitle = " titile ";
return CFrameWnd::PreCreateWindow(cs);
}

一个是改-前的标题,一个是-后,忘了哪个对应哪个,自己试试吧。
everandforever 2002-10-04
  • 打赏
  • 举报
回复
别在ONDRAW,ONPAINT等函数里面SETWINDOWTEXT.别的地方,比如ONCREATE,比如打开文件的地方等都可以
xuying 2002-10-04
  • 打赏
  • 举报
回复
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()+"-多媒体测控中心");

  }这样,子窗口的标题栏的形式就为“文档名(- 多媒体测控中心”。

  修改后的程序运行效果如下:上面例子也可做修改MDI类型窗口的各种标题参考。

siphonelee 2002-10-04
  • 打赏
  • 举报
回复
CMyDoc中的OnNewDocument()中加入
SetTitle ("xxxxx");

在CMainFrame中PreCreateWindow()改为
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
m_strTitle = "xxxx";
return CFrameWnd::PreCreateWindow(cs);
}
everandforever 2002-10-04
  • 打赏
  • 举报
回复
AfxGetMainWnd()->SetWindowText(...)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧