A Base Dialog Class for Modal/Modeless Dialog with Custom Background Color
Posted
by Patty You
on November 7th, 1998
This base dialog class (CBaseDialog) handles:
1) Modal dialog
2) Modeless dialog
3) Custom Background color
4) ON_UPDATE_COMMAND_UI available for dialog controls (I used Tim McColl's method).
How to use CBaseDialog class in your project?
To construct a modeless dialog:
Let's say CMyDialog is derived from CBaseDialog, and m_pDlg is declared as a CDialog* in a class where you plan to instanticate the dialog.
m_pDlg = new CMyDialog; m_pDlg.SetModelessFlag(true); // voila! this is all it takes to make your dlg modeless! m_pDlg->Create(IDD_MYDIALOG); m_pDlg->ShowWindow(SW_SHOW);
To construct a modal dialog:
Assumption: CMyDialog is derived from CBaseDialog.
CMyDialog dlg; // you can see, business is as usual:-) dlg.DoModal();
To change dialog background:
You can specify background color in your OnInitDialog:
SetBackgroundColor(RGB(0, 0, 128)); // you can really make your dialog fansy now
You can add a ON_UPDATE_COMMAND_UI for a control in the dialog to set states for the control ( see Tim McColl's Use ON_UPDATE_COMMAND_UI in the dialog section). See how it is done in the demo project.
Have fun, folks!
Warning:
ON_UPDATE_COMMAND_UI handler does not work if the dialog is modeless. If anyone has a solution to this, please let me know so that the source can be updated.

Comments
Thanks dude - I'll be having some fun with this ;-)
Posted by Legacy on 09/11/2003 12:00amOriginally posted by: Roddy
ReplyModeless/Modal Dialogs with custom color...
Posted by Legacy on 11/14/2002 12:00amOriginally posted by: NeLoDave
This rocks! I've been looking for something like this for a while now.
ReplyHow to disable the menu item which triggers the modeless dialog?
Posted by Legacy on 01/19/2000 12:00amOriginally posted by: TEH KOK HOW
Replydialog box background colors
Posted by Legacy on 01/01/1999 12:00amOriginally posted by: Allan Latham
OK this works greats but....
How do I get the static text controls within the dialog box
to take on the dialog box background color as their background?
I only need to do this once at dialog box initialization.
Thanks
Allan.
01/01/99
OK worked out how to do it.
It needs just a simple change to the BaseDialog class.
I will see if I can upload it to you.
Thanks again
Allan.
Reply