MFC:当没有选项卡存在时,如何绘制 CTabView 背景?
Posted
技术标签:
【中文标题】MFC:当没有选项卡存在时,如何绘制 CTabView 背景?【英文标题】:MFC: How do you Paint a CTabView Background When no tabs exist? 【发布时间】:2020-02-20 03:27:41 【问题描述】:我要显示一些文本,可能在没有选项卡的情况下使用DrawText()
到CTabView
客户区来解释它们不存在的原因。但是,CTabView::OnPaint()
不会被调用,除非在应用程序启动时调用一次。此外,当所有选项卡都隐藏时,CTabView::OnDraw()
也不会被调用。我想CMFCTabCtrl
可能是获得OnPaint()
回调的那个?但是,当未显示所有选项卡(通过CMFCTabCtrl::ShowTab()
隐藏)时,如何将某些内容输出到由CTabView
占用的CSplitterWnd
的行/列。 ??
TIA!!
【问题讨论】:
由于CTabView是从CView派生的,所以必须在OnDraw旁边调用其他方法,比如OnEraseBkg ...你检查了吗? 在你的情况下,腐烂的原因是 CTabView 被隐藏了......你可以检查一下...... 【参考方案1】:选项卡控件的工作方式是隐藏所有选项卡视图 - 除了打开的选项卡视图。
如果没有打开任何选项卡视图,则不会收到绘制消息(也不会收到 WM_ERASEBACKGROUND)。
您可以尝试在选项卡控件的 OnPaint 处理程序中实现您的绘画内容。
【讨论】:
以上是关于MFC:当没有选项卡存在时,如何绘制 CTabView 背景?的主要内容,如果未能解决你的问题,请参考以下文章
使 MFC CTabCtrl 不使用绘图选项卡的完整控件宽度