MDI Drawing glitch with XP visual style enabled 
Author Message
 MDI Drawing glitch with XP visual style enabled

When we switch between different views in a MDI windows, if the
current view is maximized, the function MDIActivate() or the message
WM_MDIACTIVATE will restore(de-maximize) the current view first and
then activate the new view in maximized state. This drawing glitch is
barely noticable without any XP theme. But when the standard windows
XP theme is enabled, I can clearly see the old view in restored state
before the new view comes up. Since the standard XP theme uses a blue
border and a red close button, this glitch looks very conspicous. Is
there any solution to this problem?

This is my imperfect solution. I will override this function:

void CMainFrame::MDIActivate(CWnd *pWnd)
{
        CWnd *pActiveWnd=MDIGetActive();
        pActiveWnd->LockWindowUpdate();
        CMDIFrameWnd::MDIActivate(pWnd);
        pActiveWnd->UnlockWindowUpdate();

Quote:
}

This function does remove the above drawing glitch. But it creats a
new side effect. When UnlockWindowUpdate() is called, it seems the
whole main MDI frame window is refreshed. All the toolbars, rebars are
redrawn, producing a flashy effect.

Thanks for any tips.



Wed, 07 Dec 2005 04:06:51 GMT  
 
 [ 1 post ] 

 Relevant Pages 

1. Enable XP Visual Styles for Dll App

2. XP Visual Style & IE Plugin

3. XP visual styles

4. Windows XP Visual Styles and VB Ocx's

5. Property page and XP Visual styles

6. XP visual styles in a DLL

7. XP visual styles for shell extensions

8. Win XP visual style and Focus Rectangle

9. XP Visual Styles with VC 6 and MFC

10. Windows XP visual styles

11. MFC and XP Visual Styles

12. Using XP Visual Styles in MFC app

 

 
Powered by phpBB® Forum Software