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