从主框架窗口标题中删除“无标题 - ”

时间:2016-05-18 19:59:56

标签: c++ mfc

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

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

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

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

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

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

谢谢,-Matt

3 个答案:

答案 0 :(得分:2)

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

这是有充分记录的here

答案 1 :(得分:1)

来自https://stackoverflow.com/a/35495606/383779

的答案

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

答案 2 :(得分:1)

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

lpCreateStruct->cx &= ~FWS_ADDTOTITLE;

应该是

lpCreateStruct->style &= ~FWS_ADDTOTITLE;

并且您需要将其添加到 PreCreateWindow 函数中,而不是 OnCreate 函数中。