I have a VS2008 C ++ application for Windows XP SP3 developed using WTL 8.1. My application contains a tab control that flickers when the frame size of the application changes.
My window hierarchy is as follows:
CFrameWindowImpl CMainFrm |-CSplitterWindow Splitter |-CTabView Configuration Tabs | |-CDialogImpl Configuration View 1 | |-CDialogImpl Configuration View 2 | |-CDialogImpl Configuration View 3 |-CDialogImpl Control View
The solution I'm trying to do is make the CFrameWindowImpl class using the WS_EX_COMPOSITED style, and all the windows below it use the WS_EX_TRANSPARENT style. Unfortunately, this leads to the fact that the tab control buttons are displayed as an empty black bar, and the controls of any kind of configuration are not displayed at all.
If I delete the WS_EX_COMPOSITED and WS_EX_TRANSPARENT , the form displays correctly, but the CTabView and everything below it flickers when resizing.
What do I need to change to eliminate flicker and draw the controls correctly?
Thanks PaulH
Edit: This worked. I removed all the WS_EX_TRANSPARENT styles for the Mark Ransom proposal. I placed the WS_EX_COMPOSITED style only in CTabCtrl (contained in CTabView ). Other controls receive double buffering as needed through WTL::CDoubleBufferImpl<> .
c ++ windows flicker wtl
Paulh
source share