Click here to Skip to main content
15,121,414 members
Articles / Programming Languages / C++
Posted 13 Feb 2001


18 bookmarked

Enhanced Windows List Developer Studio Addin

Rate me:
Please Sign up or sign in to vote.
4.00/5 (1 vote)
13 Feb 2001
A smart replacement for standard Developer Studio' "Windows" dialog.
  • Download add-in DLL - 30 Kb
  • Download source files - 43 Kb
  • Sample Image


    Ever got frustrated with unpredictable behavior of thestandard "Windows" dialog box? EnhancedWindowList is an add-in that unobtrusively replaces standard "Windows" dialog and provides extended functionality. Its features include (see picture above):

    • Windows list may be sorted by document name, path, type and status.
    • Windows may be filtered by document type. For example, you can select to include into list only windows with *.C;*.CPP;*.CXX or *.TLI document.
    • Document path is always shown.
    • Size of the dialog window may be changed.
    • Current settings (types of windows to be included into list, sorting criteria, width of columns, sizes and position of the window) are saved and restored while dialog initialization.
    • This dialog is an actual replacement for standard dialog. You need not assign special key or toolbar button to invoke it. It will be always shown instead of standard dialog in spite of way it is invoked.


    • Build the EnhancedWindowList.dsp project (or unzip downloaded and copy EnhancedWindowList.dll into Program Files\microsoft visual studio\common\msdev98\addins
    • Open Tools | Customize | Add-ins and Macro Files and tick "Inpek 7th world EnhancedWindowList".
    • Window | Windows... You should have replaced dialog.


    This add-in most likely would not work in non-english versions of DevStudio. It is due to way it is trying to determine that standard "Windows" dialog is initializing. See section "How it works" for more details.

    Context help is not implemented.

    I have only been able to test the add-in in VC6.0. It should work in 5.0, but if it doesn't you are welcome to fix it and I will incorporate any changes into the original.

    How it works

    On loading, the add-in registers a thread wide window procedure hook, which it uses to wait for WM_INITDIALOG on the "Windows" dialog. This technique have been first used by Simon Capewell in his excellent DevTrueColor add-in. We use the existence of a couple of buttons to verify the identity of the dialog. These buttons are Tile Horizontally and Tile Vertically. We check their IDs and texts to be sure that we are trying to intercept proper dialog box. The original dialog box is hidden, and the Enhanced Windows List dialog is created.



    This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

    A list of licenses authors might use can be found here


    About the Author

    Yuri Tkachov
    Web Developer
    Russian Federation Russian Federation
    Yuri Tkachov is a leading programmer and owner of Inpek 7th world. He is also a (co-)author of several programming-related books, one of which is rather popular: "DirectX-Programmierung mit Visual C++", Addison-Wesley, ISBN 3-8273-1389-9 (in German). He's been programming in Algol/Assembler/Fortran/C/C++ for 15 years and Visual C++/MFC for 5 years.
    His background includes pure and applied mathematics, computational methods and computer graphics.
    Click here to visit Yuri Tkachov's homepage, which is more likely to have updates and betas of EnhancedWindowList Add-in.

    Comments and Discussions

    Generalbtw Pin
    eXplodus21-Jan-03 12:15
    MembereXplodus21-Jan-03 12:15 
    if you change this ...

    <br />
    const TCHAR* HORZ_BUTTON_TEXT   = _T("Tile &Horizontally");<br />
    const TCHAR* VERT_BUTTON_TEXT   = _T("Tile &Vertically");<br />

    to this ...

    <br />
    const TCHAR* HORZ_BUTTON_TEXT   = _T("Ü&bereinander");<br />
    const TCHAR* VERT_BUTTON_TEXT   = _T("&Nebeneinander");<br />

    then, its also working in the german vc++ ide ... same problem to all other languages ...
    QuestionWhy is it useful? Pin
    Vitaly Belman17-Jul-01 13:03
    MemberVitaly Belman17-Jul-01 13:03 
    AnswerRe: Why is it useful? Pin
    Andreas Saurwein21-Aug-01 3:56
    MemberAndreas Saurwein21-Aug-01 3:56 
    GeneralRe: Why is it useful? Pin
    Philippe Lhoste14-Feb-02 1:18
    MemberPhilippe Lhoste14-Feb-02 1:18 
    GeneralDialog crashes the DevStudio Pin
    1-Mar-01 3:42
    suss1-Mar-01 3:42 
    GeneralRe: Dialog crashes the DevStudio Pin
    1-Mar-01 4:02
    suss1-Mar-01 4:02 
    GeneralWindows stay minimized Pin
    Mr Matt Ellis, Esq20-Feb-01 6:11
    MemberMr Matt Ellis, Esq20-Feb-01 6:11 
    GeneralThanks a lot for this great tool Pin
    20-Feb-01 0:37
    suss20-Feb-01 0:37 
    GeneralRe: Thanks a lot for this great tool Pin
    Mr Matt Ellis, Esq20-Feb-01 6:17
    MemberMr Matt Ellis, Esq20-Feb-01 6:17 
    GeneralRe: Thanks a lot for this great tool Pin
    20-Feb-01 12:55
    suss20-Feb-01 12:55 
    GeneralSelected item not always visible Pin
    19-Feb-01 22:43
    suss19-Feb-01 22:43 
    GeneralRe: Selected item not always visible Pin
    20-Feb-01 2:19
    suss20-Feb-01 2:19 

    General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

    Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.