'Window Tabs' Developer Studio Add-In


Desktop-as-a-Service Designed for Any Cloud ? Nutanix Frame

WndTabs Loaded Into DevStudio
WndTabs - Sample Image
Click here for larger image

Environment: VC5, VC6, eMbedded VC++, WinCE Platform Builder, Comctl32.dll 4.71+

What is it?

Ever wished that you could quickly switch among your open workspace windows without using the "Windows" menu or Alt-Tab'bing till you drop? Well, I did.

"Window Tabs", the add-in I wrote for Microsoft Developer Studio, adds a docking tab bar. Each tab names a windows that's opened in the workspace. You can switch between the windows by simply clicking on the tab. The tabs have right-click context menus, and can quickly show you (via tool-tips) the full path of the corresponding file.

The add-in has long ago evolved beyond a simple window switcher. Some key features found in the current version are:

  • Highly configurable:
    • Control what goes on the tab: number, icon, path components, resource information.
    • Control the tab strip position (bottom/top).
    • Control the number of tab rows.     (NEW: Automatic row counts)
    • Control what goes on the tab context menus.
  • Tab context menus packed with useful features:
    • Window management functions
      • Close window/all windows
      • Close all windows except current window
      • Close all related files (file group)
      • Minimize all windows
      • Automatically (and selectively) close windows opened during debugging.   NEW!
    • File management functions
      • Save file/all files
      • Access the file's shell context menu.
      • Open a file's alternate (.h<->.cpp etc.) file - manually or automatically (NEW)
      • Toggle a file's read-only attribute for quick hack of source controlled files.
      • Open a file as a text document. For instance, get quick access to your resource file's source.
      • Open a file's containing  folder.   NEW!
    • Clipboard copy functions 
    • And others...
  • Full source code.
  • Programmatically extend WndTabs using the WndTabs SDK NEW!
  • Access tabs via keyboard shortcuts.
  • Setup wizard to set up toolbars and keyboard shortcuts.
  • Full online help.
  • Automatic setup program
  • Supports most VC variants, including VC5, VC6, eMbedded Visual C++ and CE Platform Builder.   NEW!
  • Extension module (shareware) that adds the following advanced capabilities to WndTabs:
    • Tab Grouping - allows grouping of multiple windows on the same tab.
    • Tab Coloring - custom colors for tabs.
    • Fully customizable menus NEW!
    • Fully customizable keyboard shortcuts.   NEW!

Refer to the online help for installation and usage details, and a full list of features.


What's New

Version 3.0 has been almost a year in the making, and is the most ambitious version of WndTabs to date.   This version is uses the great BCG library to implement a fully customizable UI.  This isn't as simple as it sounds: To make everything work as it should, WndTabs is no longer a simple addin.  It is now a full MFC application living inside another MFC application (Visual C++).  As you might imagine, this requires a lot of stitching code.  And although the casual user wouldn't notice (and probably wouldn't care), if you want to know how it all works, have a look at the source code.

As I said, version 3.0 is a major update to WndTabs and users of previous versions are encouraged to check out the WndTabs site for a full list of new features and bug fixes.

A feature tour is also available online.

The WndTabs Source Code

WndTabs is provided with full source code. The code demonstrates the following techniques:
  • Writing DevStudio add-ins that handle events and export commands.
  • Interfacing with other add-ins using the AddInComm library.
  • "Stealing" events from other windows by using subclassing.
  • Installing and using system message hooks (SetWindowsHookEx).  NEW!
  • Enumerating the shell namespace / full support for file context menus including the elusive "Send To..." menu.
  • Use of common controls (tabs, images, etc.)
  • Use of the MFC template based collections (CTypedPtrArray, CTypedPtrList, etc.).
  • Reusable components for HTML Help integration in MFC applications!
  • Use MFC to access Internet files.
  • Detect version updates over the net unobtrusively for both direct and dialup Internet users.
  • Small tricks of the trade:
    • Dialogs that change at runtime.
    • Storing your configuration in the registry.
  • And more...


Make sure to check out the WndTabs web site which is more likely to have updates and betas:



Download the WndTabs 3.0 Installer [binaries only] - (1,069 kb)
Download the WndTabs 3.0 Source Code Installer - (3,650 kb)

This article was originally published on April 3rd, 2001

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date