Developing Windows Applications by Mykola Dudar

Helping Developers Build Applications for Windows using Visual Studio.

Aero Wizards (Windows Vista style wizards) in MFC8 (VS2005)

Aero Wizards (Windows Vista style wizards) in MFC8 (VS2005)

  • Comments 2

Almost a year ago I was looking on new Vista features to estimate amount of changes to an existing MFC application required to add support for this features. One of these features is new Aero-style wizards that replace Wizard97 on Windows Vista. I have built a small demo that I have used for building a user experience document during Orcas feature planning. I have been sending my demo internally as people ask for it. However I thought I would add some finishing touches, comments before posting the demo on my blog. Months later I still have not found time to finish it. If I have found time to finish it so far, this usually means that I am not going to find anytime soon. But because I am often asked this question by external folks, I think it is time for me to share my demo in a form it is now.

In the attached zip file, one may find simple MFC wizard that looks like Aero Wizard on Windows Vista. Most of code is wizard generated. I intentionally stripped out any code not important for this demo. I built and run demo using VS2005 and Windows SDK for Windows Vista Beta 2 on Vista Beta 2 (build 5384). It seems to work just fine.  To build it you need to make sure that WinSDK folders are on INCLUDE and LIB path. I change this in VS2005 in Tools->Options-> Projects and Solutions->Visual C++ Directories. Remember to put WinSDK folders for headers (C:\Program Files\Microsoft SDKs\Windows\v1.0\Include) and libraries (C:\Program Files\Microsoft SDKs\Windows\v1.0\Lib) before $(VCInstallDir)PlatformSDK\include and $(VCInstallDir)PlatformSDK\Lib.

An interesting find I would like to point out. Aero Wizards do not create window for Next and Back buttons. So if you have a code that relies on detecting these buttons, it is not going to work. There is a workaround to this issue, which I do not remember at this point. If I came across it, I will post it. I think you should be able to do this using GetWindowLong(), but I do not have code that shows this.

Have fun with the demo. Please remember that as always, this sample is are provided "AS IS" with no warranties, and confer no rights.

Attachment: Demo Aero Wizards And MFC Integration.zip
  • Can Aero Wizards be created using C# or is this a VC++ only type of project.
  • Aero Wizards is all about native code. I have heard that the next .Net Framework 3.0 or 3.5 may expose .Net API which would allow creating Aero Wizards. However I am not sure of a status on this project. I would ask this question on C# forums, http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=31&SiteID=1
    Nikola
Page 1 of 1 (2 items)