Custom AppWizard - Programmer's About Box


This article was contributed by Tom Archer.

Introduction

Like most authors, I try and include a lot of demo applications with my books and articles. It was in the writing of one of my books that I realized that it would be really cool if all of my demo applications were to contain an About box that displayed certain information about me. Then I began to think, Wouldn't it be even better to have a button on the About box that allows the user of my application to automatically go to my web page simply by clicking on a button?

The only problem left was that I had to remember to put this code into every sample application I wrote. Knowing my luck, I just knew that the coolest application in the book would be the only one I'd forget to put the About box on! So, I struck on the idea of learning how to write a Visual C++ Custom AppWizard. Since then (I wrote this AppWizard about 2 years ago), several authors (including Paul DiLascia) have written the so-called "hyperlink control" and as a result more and more developers are including About boxes with hyperlinks to their home pages. For this reason, I finally decided to go ahead and post this article that provides a Custom AppWizard that automatically generates an About box for every application created with it.

Installing and Using the About Custom AppWizard

Simply download the .awx (Custom AppWizard DLL) into your Visual C++ template folder. It couldn't be easier to use! After that, any time you create a new project, you will see a new project type of "MFC AppWizard (exe) - About box" (see image below). Selecting this project type will, along with the standard AppWizard dialogs, present you with a dialog that allows you to enter your name, your web page URL and any general description. This description can be about the program or anything you like. For example, if you are a consultant and you want to advertise your services to anyone who is using your app, you could include information about yourself on the About Box. The Custom AppWizard will do the rest for you. When you run the application and select the About box menu option (SDI and MDI) or click the About button (Dialog app), you will see the information you entered for the app.

Persistent Settings

Another neat feature I added recently was the ability to save the settings. After all, if you just want to put generic information like your name and URL in the About box, why should you have enter that every time you create a new project. Therefore, every time you create a new project, this information gets saved to the registry just in case you want to re-use it.

More Details on Writing Custom AppWizards

I think that the code is pretty clear and it should be really easy to search and replace what you need to customize the dialog to your particular situation. However, if there's enough interest I will post details on the exact mechanics of writing a Custom AppWizard.

Downloads

Download source for the Custom AppWizard - 320Kb
Download only the Custom AppWizard DLL (.awx) - 220K


About the Author

Tom Archer - MSFT

I am a Program Manager and Content Strategist for the Microsoft MSDN Online team managing the Windows Vista and Visual C++ developer centers. Before being employed at Microsoft, I was awarded MVP status for the Visual C++ product. A 20+ year veteran of programming with various languages - C++, C, Assembler, RPG III/400, PL/I, etc. - I've also written many technical books (Inside C#, Extending MFC Applications with the .NET Framework, Visual C++.NET Bible, etc.) and 100+ online articles.

Comments

  • Custom Appwizard question

    Posted by Legacy on 04/05/2003 12:00am

    Originally posted by: vinnie

    I'm making my own appwiz and the functionality is just fine.
    it adds all neccesary files and all. But the solution explorer is a mess. I want my project neatly sorted in folders and subfolder, class by class.

    I've managed to arrange it by file extension but how to I arrange the entries by filename?

    e.g.

    I have a folder named "WindowWrapper"
    and subfolders "CBaseWindow", "CButton"... etc etc

    in CBaseWindow I want to put CBaseWindow.cpp / CBaseWindow.h
    in CButton I want to put CButton.cpp / CButton.h
    etc.etc.

    I can't find any info on doing this or another appwizard that makes use of it.

    So does anyone know how to approach this?

    Reply
  • Ask for more help about Custom AppWizard

    Posted by Legacy on 10/30/2002 12:00am

    Originally posted by: Kiki Zhang

    Hi,
    Your article seems good. But how can I change other settings such as the output directories and the target extent? What should I do if I want to add some Post-build commands? I want to find more details abot Custom Appwizard.
    Thanks a lot.

    Reply
  • Help about Custom AppWizard.

    Posted by Legacy on 07/23/2002 12:00am

    Originally posted by: Dan

    Hi.

    Can anybody tell me how to customize the existing configurations of the new project by using the methods of IBuildProject and IConfiguration. The Developer Studio object model documentation did'nt help me because i'm not familiar with COM. I will be so happy if you tell me exactly how to change some of the settings (e.g. the compiler and linker settings) of the new project.

    Reply
  • Good work, I want more features!

    Posted by Legacy on 04/25/2002 12:00am

    Originally posted by: DaFu Chen

    Good work. I want more features ,such as :
    1) custom About box
    2) Auto make code for tray support
    3) Auto make code for XP like's menu
    ....

    Simple to choice , then code is making for you.

    Reply
  • creating appwizards

    Posted by Legacy on 08/23/2001 12:00am

    Originally posted by: cahu

    i share the opinion of giorgios. I'd be very interesting an article about creating appwizards.

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • On-demand Event Event Date: September 10, 2014 Modern mobile applications connect systems-of-engagement (mobile apps) with systems-of-record (traditional IT) to deliver new and innovative business value. But the lifecycle for development of mobile apps is also new and different. Emerging trends in mobile development call for faster delivery of incremental features, coupled with feedback from the users of the app "in the wild." This loop of continuous delivery and continuous feedback is how the best mobile …

  • Java developers know that testing code changes can be a huge pain, and waiting for an application to redeploy after a code fix can take an eternity. Wouldn't it be great if you could see your code changes immediately, fine-tune, debug, explore and deploy code without waiting for ages? In this white paper, find out how that's possible with a Java plugin that drastically changes the way you develop, test and run Java applications. Discover the advantages of this plugin, and the changes you can expect to see …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds