首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新CEditView的标签而不改变CEditView的内容?

更新CEditView的标签而不改变CEditView的内容?
EN

Stack Overflow用户
提问于 2021-07-02 02:16:22
回答 2查看 29关注 0票数 0

当我有一个使用CBCGPTabView作为主视图的SDI Document-View MFC应用程序时,其中一个选项卡是CEditView。如果我向CBCGPTabView派生类发送自定义消息并使用GetTabControl().SetTabLabel(),它不仅会更改选项卡标签,还会更改CEditView的内容。有没有办法防止这种情况发生?

EN

回答 2

Stack Overflow用户

发布于 2021-07-02 02:16:22

这是我目前的变通方法:

代码语言:javascript
复制
  // hack to work around ceditview getting its window contents changed
  CView* pview=GetView(tabi);
  if (pview->IsKindOf(RUNTIME_CLASS(CEditView))) {
    CString strexistingtext;
    pview->GetWindowText(strexistingtext);
    // change label
    tabctrl.SetTabLabel(tabi, strlabel);
    // put back text
    pview->SetWindowText(strexistingtext);
  }
  else {
    // change label
    tabctrl.SetTabLabel(tabi, strlabel);
  }
}
票数 0
EN

Stack Overflow用户

发布于 2021-07-04 23:13:52

另一种方法是重写

代码语言:javascript
复制
virtual CString CBCGPMDIChildWnd::GetFrameText() const

并在那里放置/设置您需要的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68215133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档