MFC/BCGP:更新 CEditView 的选项卡标签而不更改 CEditView 的内容?
Posted
技术标签:
【中文标题】MFC/BCGP:更新 CEditView 的选项卡标签而不更改 CEditView 的内容?【英文标题】:MFC/BCGP: Update CEditView's tab label without changing the contents of the CEditView? 【发布时间】:2021-07-01 18:16:22 【问题描述】:当我有一个使用CBCGPTabView
作为主视图的 SDI Document-View MFC 应用程序时,其中一个选项卡是CEditView
。如果我向CBCGPTabView
派生类发送自定义消息并使用GetTabControl().SetTabLabel()
,它不仅会更改选项卡标签,还会更改CEditView
的内容。有没有办法防止这种情况发生?
【问题讨论】:
自定义消息的价值是什么? 基于WM_APP 【参考方案1】:这是我目前的解决方法:
// 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);
【讨论】:
【参考方案2】:另一种方法是覆盖
virtual CString CBCGPMDIChildWnd::GetFrameText() const
然后把你需要的东西放在那里。
【讨论】:
以上是关于MFC/BCGP:更新 CEditView 的选项卡标签而不更改 CEditView 的内容?的主要内容,如果未能解决你的问题,请参考以下文章
在 Play 商店更新 React Native 应用程序时,仍然显示卸载和打开选项。不显示更新选项