‘Window Tabs’ Developer Studio Add-In

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
    • 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
  • 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 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

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)

More by Author

Must Read