Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS Tech Support » g_PaintManager.PaintManagerStateLoad question Collapse All
Subject Author Date
tera tera Jul 1, 2009 - 1:31 AM

Hello.


I do not use PaintManagerStateLoad

Please teach a merit to use


May I make PaintManager at the time of start every time?


 g_PaintManager.InstallPaintManager(     RUNTIME_CLASS(CMuPaintManager)     //RUNTIME_CLASS(CExtPaintManager)     //RUNTIME_CLASS(CExtPaintManagerXP)     //RUNTIME_CLASS(CExtPaintManagerOffice2003)     ////RUNTIME_CLASS(CExtPaintManagerStudio2008)      //RUNTIME_CLASS(CExtPaintManagerOffice2003NoThemes)  //RUNTIME_CLASS(CExtPaintManagerStudio2005)     //RUNTIME_CLASS(CExtPaintManagerNativeXP)     //RUNTIME_CLASS(CExtPaintManagerOffice2007_R1) // シルバー     //RUNTIME_CLASS(CExtPaintManagerOffice2007_R2_LunaBlue)    // 青い     //RUNTIME_CLASS(CExtPaintManagerOffice2007_R2_Obsidian)    // 黒い    //RUNTIME_CLASS(CExtPaintManagerOffice2007_R3_Silver)  );

LAURA GUGLIELMETTI May 13, 2010 - 1:39 AM

Dear Tech-support,


I’m calling an exe made using your Prof-UI 2.89 and with the CExtPaintManagerOffice2007_R3_Obsidian theme from an application that is a standard Win32 app using CreateProcess.


Once this exe is open, if I create any dialog inside the original Win32 app, the background of such dialog is according to obsidian theme as well.


Is it possible to avoid such behavior. Do I miss something inside the Prof-UI application ?


Thanks in advance for your help.


 Best regards


Laura

Technical Support May 13, 2010 - 12:49 PM

Our customers often ask us a question which is "vice versa" version of your question: how to make some non-Prof-UIS dialog fully or partially themed by Prof-UIS? We do not perform any automatic theming of non-Prof-UIS dialogs. But this is possible. Here is the example of how to skin the standard Windows shell dialog for browsing folders:

CExtNCW < CExtResizableDialog > dlgSkin;
dlgSkin.SetAutoSubclassChildControls();
::AfxHookWindowCreate();
::ShBrowseForFolder( . . . . . . . );
::AfxUnHookWindowCreate();

Something similar can occur in your app occasionally. The AfxHookWindowCreate() API is invoked during the MFC/Prof-UIS dialog construction. We suspect you displayed your CDialog-based window while the CExtResizableDialog-based window construction was not completed.

Technical Support Jul 1, 2009 - 7:43 AM

Yes, you simply should install a paint manager like demonstrated in the code snippet in your message and you should not invoke state loading/saving code of the paint manager. Please also note, most of the Prof-UIS classes are derived from the CExtPmBridge interface class which notifies other component about paint manager changing event what allows Prof-UIS classes to reload their settings for the new applied UI theme. If you install paint manager before creating any windows in your application, then the startup time should be a bit faster.