VS 2008 MFC功能包 - 如何(VS 2008 MFC Feature Pack - How

2019-10-29 11:50发布

我有我使用MFC功能包编写的应用程序。 它使用文档/视图。 由于这些类是从“正常” MFC类派生的,这些问题可能不是功能包具体。

当做出改变,我添加一个星号*到标签上的名称,字(modified) ,以用下面的代码在主窗口标题:

tabval = "Report_" + pDoc->rptData.reportId.Strip();
winval = tabval;
if (changed) {
    tabval += " *";
    winval += " (modified)";
}
frame->SetTitle(tabval);
frame->SetWindowText(tabval);
name = mainFrame->GetTitle();
mainFrame->SetWindowText(name + " - " + winval);

但标签之间切换时,原文回来。 第一个问题:我如何做出改变粘?

第二个问题:有一个在左,右侧的属性窗口的树视图。 他们(联合国)之间的切换突出了标题栏显示哪一个是积极的。 用户还可以激活并与文档窗口交互,但似乎没有要任何方式,提供视觉反馈文档窗口,事实上,活跃。 我怎样才能做到这一点?

Answer 1:

目前尚不清楚你的变量是什么类型的,但你有pDocframe ,我假设前者是您CDocument派生类,而后者可能是一个CFrameWndCMDIFrameWnd派生类。

如果我不远矣,那么为什么标签的标题都没有坚持的理由是,你应该调用SetTitleCDocument这是每个标签视图的背后,所以像

tabval = "Report_" + pDoc->rptData.reportId.Strip();
winval = tabval;
if (changed) {
    tabval += " *";
    winval += " (modified)";
}
pDoc->SetTitle(tabval);    // set tab title on CDocument


Answer 2:

我在过去类似的问题。 的主窗口的标题文字变回的原因是功能CFrameWndEx :: OnUpdateFrameTitle 。 因为它是虚拟的,你可以重写它在自己的派生类中有你想要的行为。 这是为我工作的解决方案。



文章来源: VS 2008 MFC Feature Pack - How do I