Элемент управления вкладкой подкласса

Каков правильный способ подкласса элемента управления вкладками в winAPI, когда окна выполняют как рисование по умолчанию, так и ваше собственное. Поскольку BeginPaint() и EndPaint() вызываются в процедуре по умолчанию, я не вижу способа сделать это. Я заставил его работать с GetDC(), но в нем было очень много ошибок, которые меня чертовски раздражали.

Если то, о чем я прошу, невозможно, как лучше всего рисовать вкладки самостоятельно?


person Alexander Rafferty    schedule 09.10.2010    source источник


Ответы (1)


В вашей ситуации создание подклассов не требуется. Элемент управления вкладками поддерживает бит стиля TCS_OWNERDRAWFIXED, который позволяет родительскому окну обрабатывать сообщения WM_DRAWITEM. и нарисуйте сами вкладки.

На Codeguru есть хороший пример. Он использует MFC, но пусть это вас не останавливает. Проверьте их метод CTabCtrlEx::DrawItem().

person Frédéric Hamidi    schedule 09.10.2010
comment
Это обратное тому, что я хочу. Мне нужно самому нарисовать фон, а вкладки позволить окнам. - person Alexander Rafferty; 09.10.2010
comment
Извините, это неясно в вашем вопросе (особенно в последней строке). Пробовали ли вы обрабатывать WM_ERASEBKGND? - person Frédéric Hamidi; 09.10.2010