LOGOWIZ: Custom AppWizard Variant of the Standard MFC AppWizard

Click to open or copy the LOGOWIZ project files.

LOGOWIZ is an example of how to write a custom AppWizard that is a variant on the standard MFC AppWizard. The techniques it demonstrates include:

Removing Standard AppWizard Pages

You can remove any AppWizard pages from the standard list that you like. While it is possible to rearrange the sequence as well, that is not recommended. This is done in the constructor for CDialogChooser in Chooser.cpp.

In this custom AppWizard, the ODBC page has been removed if this is an MDI/SDI-based app. You can find further details about how this was done in comments near the code itself (see CDialogChooser::CDialogChooser() in Chooser.cpp). If you want, you can set the defaults as desired for a page that you remove; this makes the defaults mandatory rather than optional.

Changing Default Settings

You can change default settings for standard AppWizard pages. This is done in your main custom AppWizard class (in this case, CLogoWizAppWiz in Logowaw.cpp) InitCustomAppWiz function. The list of settings you can change is found in LOGOWIZ Help.

In LOGOWIZ, the application type has been defaulted to dialog-based, and context-sensitive help has been turned on.

This sample demonstrates the following keywords:

AfxAbort; AfxGetApp; BitBlt; CBitmap::LoadBitmap; CDC::CreateCompatibleDC; CDC::DPtoLP; CDC::FillRect; CDC::LineTo; CDC::MoveTo; CDC::SelectObject; CGdiObject::GetObject; DebugBreak; GetActiveWindow; GetDC; GetLastActivePopup; InterlockedDecrement; InterlockedIncrement; MapDialogRect; MessageBox; OutputDebugString; RedrawWindow; va_end; va_start; wsprintf