首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

winxp 下MDI子窗体标题修改有关问题

2012-05-28 
winxp 下MDI子窗体标题修改问题我要实现的功能: 在每个子窗体文档名称的最后附上我的特殊描述, 在网上找了

winxp 下MDI子窗体标题修改问题
我要实现的功能: 在每个子窗体文档名称的最后附上我的特殊描述, 在网上找了教程,重载了OnUpdateFrameTitle函数, 结果坑爹了, 在WINXP下运行时没被激活的窗体标题栏也可能变蓝但框架还是变灰的(见图), 但程序在WIN7下运行一切正常. 难道是WINXP的漏洞?

图片请点此链接查看http://my.csdn.net/tomhe666/album/detail/1161514 

另求大神指点, 我要实现上述功能该怎么改?(注意后缀的字串会根据文档内容的修改而变化而动态更改.
如果不在 OnUpdateFrameTitle中修改标题, 则激活子窗体时, 标题自己会被改为文档标题(MFC的MDI框架自己作了处理), 但是程序也不能直接用DOC的SetTitle修改文档标题, 这样打开已存在文档时,修改后再保存时会要求输入新的文件名.


void CChildFrame::OnUpdateFrameTitle( BOOL bAddToTitle )
{
  CMDIChildWndEx::OnUpdateFrameTitle(bAddToTitle);
  CString str;
  GetWindowText(str);
  str += "-hello"; //此处仅为测试, 原程序中此处文字会随文档的内容的修改而随时变化
  SetWindowText(str);
}

不知道附件怎么发,所以工程放不上来, 有要工程的请留下邮箱


[解决办法]
VC6下是:
BOOL CPoemDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
//
CString title;
title.Format("String-Window%d",ViewID);
ViewID++;
SetTitle(title);

[解决办法]
void CChildFrame::OnUpdateFrameTitle( BOOL bAddToTitle )
{
CMDIChildWndEx::OnUpdateFrameTitle(bAddToTitle);//去掉这句试试,看看不执行默认的会是怎么样,或者把这句放在最后一句,就是SetWindowText(str);下面
CString str;
GetWindowText(str);
str += "-hello"; //此处仅为测试, 原程序中此处文字会随文档的内容的修改而随时变化
SetWindowText(str);
}


[解决办法]
所以只要有了pDoc就可以使用CDocument::SetTitle

热点排行