【问题标题】:Remove "Untitled - " from main frame window caption从主框架窗口标题中删除“Untitled -”
【发布时间】:2016-05-18 19:59:55
【问题描述】:

我有一个 MFC 文档应用程序,我想在其中删除标题中的“Untitled -”。

我的理解是我需要从窗口样式中删除'AddToTitle'属性,然后我可以设置标题,并且不会添加'untitled'字符串。

我尝试了以下方法,但它不起作用。

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
 ...

    lpCreateStruct->cx &= ~FWS_ADDTOTITLE;
    this->SetTitle(L"The New Title");
}

有人知道如何从主窗口标题中删除“无标题”吗?

谢谢,
-马特

【问题讨论】:

    标签: c++ mfc


    【解决方案1】:

    OnCreate 太晚了。您必须在创建窗口之前修改样式。只需删除 PreCreateWindow 中的 FWS_ADDTOTITLE

    这是相当有据可查的here

    【讨论】:

      【解决方案2】:

      来自我自己对https://stackoverflow.com/a/35495606/383779的回答

      我过去也遇到过类似的问题。主窗口标题文本变回的原因是函数CFrameWndEx::OnUpdateFrameTitle。由于它是虚拟的,因此您可以在自己的派生类上覆盖它以获得您想要的行为。这是一个对我有用的解决方案。

      【讨论】:

        【解决方案3】:

        我不确定这是否为时已晚,但您的问题中有错字

        lpCreateStruct->cx &= ~FWS_ADDTOTITLE;
        

        应该是这样的

        lpCreateStruct->style &= ~FWS_ADDTOTITLE;
        

        而且你需要将它添加到 PreCreateWindow 函数而不是 OnCreate 函数中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-01-04
          • 1970-01-01
          • 2023-03-18
          • 2016-10-26
          • 1970-01-01
          • 2012-02-13
          • 1970-01-01
          相关资源
          最近更新 更多