Использование VS 2015. У меня есть диалоговое приложение (НЕ PropertySheet), и у меня есть производный от CTabCtrl объект, в котором я хочу отключить определенные вкладки. Из того, что я погуглил, способ привлечь владельца — это путь. Хорошо, могу понять это.
То, что я хотел бы сделать, это НАЧАТЬ с версии, нарисованной владельцем, которая действует точно так же, как версия, не нарисованная владельцем, а затем начать настраивать ее по-разному, чтобы экспериментировать. Например, я хотел бы использовать такие вещи, как
void CTabControl::DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct )
{
CTabCtrl::DrawItem( lpDrawItemStruct ); // do exactly what unmodified does
}
так что я в основном называю все, что неизменный CTabCtrl сделает для выполнения рисования. Даже самая простая отправная точка будет полезна. Какие процедуры мне нужно переопределить или перехватить, чтобы сделать это?
Я устанавливаю TCS_OWNERDRAWFIXED в PreSubclassWindow () и делаю то, что я показал выше, и одну или две другие вещи, но результат определенно не выглядит одинаково. Во-первых, нет текста во вкладках.
Мне бы очень понравилось, если бы я мог получить некоторые советы о том, с чего начать. Кстати, я создаю элемент управления программно (без диалоговых ресурсов), как это (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 );
...
}
Задача ещё не решена.
Других решений пока нет …