使用VS 2015.我有一个基于对话框的应用程序(不是PropertySheet),并且有一个CTabCtrl派生的对象,我想在其中禁用特定的选项卡。从我用Google搜索过的方式来看,拥有者抽奖是最佳选择。很好,可以理解。
我想要做的是使用自主绘制的版本START,其行为与非所有者绘制的版本完全相同,然后开始进行各种调整以进行实验。例如,我想使用像
这样的东西void CTabControl::DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct )
{
CTabCtrl::DrawItem( lpDrawItemStruct ); // do exactly what unmodified does
}
所以我基本上调用了未经修改的CTabCtrl将完成绘图的所有操作。即使是最简单的起点也会有所帮助。我需要覆盖或拦截哪些例程来执行此操作?
我在PreSubclassWindow()中设置TCS_OWNERDRAWFIXED并执行上面显示的内容,以及其他一两件事,但结果肯定看起来不一样。首先,标签中没有文字。
如果我能从一开始就得到一些指示,我真的很喜欢它。顺便说一句,我是以编程方式创建控件(没有对话框资源)(CTabControl继承自CTabCtrl):
MyDlg::OnInitDialog()
{
...
m_tabctrl = new CTabControl();
m_tabctrl->Create( TCS_TABS | TCS_BOTTOM | TCS_HOTTRACK | TCS_FIXEDWIDTH | WS_CHILD | WS_VISIBLE, dummyRect, this, ID_TABCTRL );
...
}