Click here to Skip to main content
Licence 
First Posted 26 Feb 2004
Views 329,998
Bookmarked 132 times

XP style Explorer Bar (Win32/MFC)

By | 4 Mar 2004 | Article
Implementation of a shellstyle.dll aware XP Windows Explorer Bar

Introduction

This article presents a full implementation of the Windows XP Explorer Bar as a set of Win32 controls and a MFC wrapper. The Explorer Bar works on Windows 98/Me/2k/XP and is fully shellstyle.dll aware, i.e. can be used with any XP visual theme (standard, 3rd party non-standard, and the classic Windows scheme).

The new custom controls include extended button controls, extended static controls, tasklink controls, and collapsible header controls.

Background

The Windows Explorer that comes with Windows XP introduces a fancy new control bar called "Explorer Bar". The bar handles one or more collapsible panes containing tasklinks or informative text and having a collapsible header control.

The Explorer Bar is neither exported by any API nor uses it the standard XP theme renderer. All bitmaps and metrics reside in specialized DLLs named "shellstyle.dll".

The implementation presented here has a full parser for this non-standard information and a highly sophisticated rendering engine allowing fade and roll effects to be applied to expanding/collapsing panes.

Using the code

The zip archive contains a Platform SDK like HTMLHelp file (explorerbar.chm) with the full documentation (Win32/MFC). You must build all configurations of explorerbar.dsw before using the library. If you are interested in the sample application, then build ExpBarSample.dsw as well.

After building all configurations of explorerbar.dsw you find the library in "explorerbar\lib" and the MFC wrapper in "explorerbar\lib\MFC".

General comments, points of interest

Approx. 18.000 lines of code needed to be written in order to support all functionalities of the Windows XP Explorer Bar, i.e. expect bug-fixes!

Even if the Explorer Bar will be exported in the future by an API, it will not work under Windows 98/Me/2k because it will probably use a new XP theme renderer tightly linked to Windows XP.

One big TODO item is a pure MFC version of the Explorer Bar. This would simplify the message handling stated in the Explorer Bar SDK (HTMLHelp). The current implementation (explorerbar.dll) has been written for Win32 applications for maximum platform support.

History

Version 1.0 is the first published version of the Explorer Bar. It is embedded in the great sizeable control bar by Cristi Posea.

License

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

Ingo A. Kubbilun

Software Developer (Senior)

Germany Germany

Member

Dipl.-Inform., 26 years experience (1985-2011) in coding/software development (C/C++/C#/Java/x86-Assembler), experienced in Win32/MFC/WPF development, UNIX (Linux/Solaris), and especially in IT-security

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralA problem with refresh [modified] Pinmemberyyyzlf22:22 30 Nov '09  
QuestionWindows 7? PinmemberStefan Dahlin5:32 28 Oct '09  
AnswerRe: Windows 7? PinmemberMember 85070054:39 22 Dec '11  
QuestionI can't build this project!Why? Pinmemberhunzaixa23:01 16 Apr '08  
Generali can not build this project, pls help me. Pinmemberthuong10127719:11 3 Mar '08  
Generalnice control Pinmemberan777716:58 7 Nov '07  
QuestionVISTA ? PinmemberMichael Chourdakis7:14 21 Jun '07  
Generalerror Pinmemberaldo hexosa12:58 6 May '07  
GeneralShareable Section created by the linker PinmemberMichael Chourdakis7:29 24 Apr '07  
GeneralRe: Shareable Section created by the linker PinmemberMichael Chourdakis7:44 24 Apr '07  
QuestionA big error Pinmemberyhw1985040116:52 1 Apr '07  
Generalexplorer bar width Pinmembermanuel3578:33 9 Feb '07  
GeneralRe: explorer bar width PinmemberTornado8a22:45 15 Aug '07  
GeneralLoad C runtime library without using manifest Pinmembersunika4:24 12 Nov '06  
QuestionDisable TaskLink32? PinmemberStefan Dahlin1:48 6 Sep '06  
Generalvs2005 error! Pinmemberkurome16:11 29 May '06  
GeneralRe: vs2005 error! PinmemberNew_Rulz1:39 31 May '06  
GeneralRe: vs2005 error! Pinmemberkurome14:42 4 Jun '06  
QuestionHow can I prevent closing the Explorer bar Pinmemberfrewah13:01 27 May '06  
AnswerRe: How can I prevent closing the Explorer bar Pinmemberfrewah13:38 27 May '06  
QuestionToo many paint messages Pinmembergunag2:16 3 May '06  
AnswerRe: Too many paint messages Pinmembernanfang6:28 28 Sep '07  
QuestionHow to change the style on the fly (kind of a solution) PinmemberLars [Large] Werner7:29 19 Apr '06  
QuestionAgain Hiding/Showing problem Pinmembergunag4:20 7 Apr '06  
Hello everybody,
 
I'm still bothering around with my problem how to hide individual tasklist control in the explorer bar control.
Somehow this control is really strange for me. In one method I can hide several tasklist controls individually by calling the Windows-function ::ShowWindow(,FALSE,0) and in another method I do the same only with the method ShowWindow(SW_HIDE) of the window which represents the tasklist control. In a third method none of those two options works. I'm really curious how you folks out there solved this problem because I guess you must have similar problems with this control.
There is also a resizing problem, because no matter how I hide a such tasklist control, the area represented by a dialog does not become smaller.
I noticed that the area represented a dialog does become smaller, if I set the text length in the tasklist control to 0, but then I have the problem that the dialog does not resize properly again when I add some text again to the tasklist control which leads to problem that the tasklist control is not completely displayed but just a very slim line of pixels is displayed. The rest is hidden behind some pixels used of controls which should be actually below the first control.
 
I'm open for any hints.
 
Cheers
 
gunag
GeneralUpdate on the problem: Again Hiding/Showing problem Pinmembergunag4:58 7 Apr '06  

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

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

Permalink | Advertise | Privacy | Mobile
Web04 | 2.5.120529.1 | Last Updated 5 Mar 2004
Article Copyright 2004 by Ingo A. Kubbilun
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid