Current version: 2.45
Last updated: Apr 16, 2010
resizable control bars
by Cristi Posea
If you ever wondered how the ClassView, Output and other windows in Microsoft® DevStudioTM were made, this section is for you. The functionality is somewhat like DevStudioTM's control bars. However, the look is not the same, as the main goal was to get an easy to use class...
Resizable control bar, that can be resized both when docked and when floating.
Multiple sizing control bars can be docked on the same row/column.
Full dynamic resizing, both when docked and floating, including diagonal resizing when floating.
State persistence support (SaveState/LoadState).
Gripper with "hide bar" flat button.
Memory DC flicker-less NC painting.
Sample extension class with focus auto-sensing text caption. On Win98/Win2k, the caption is painted with gradient.
No custom resources were used (bitmaps, cursors, strings, etc.), so the integration is easier and you have full control over the resources you eventually use in derived classes.
Easy to use: just derive your own control bar(s) from CSizingControlBar then add your child controls.
Optional Instant Resizing Bar mode - create the bar, then add a child control which will be automagically resized, without the need of a derived class for the bar.
VC++ 6.0, 2003-2010; MFC; Win32; UNICODE enabled
The source code is Copyright (C) 1998-2010 Cristi Posea. All rights reserved.
This code is free for personal and commercial use, providing the copyright notice remains intact in the source files and all eventual changes are clearly marked with comments.
No warrantee of any kind, express or implied, is included with this software; use at your own risk, responsibility for damages (if any) to anyone resulting from the use of this software rests entirely with the user.
Previous versions are available upon request.
Thanks to Harlan R. Seymour for his continuous support during development of this code.
Thanks to Dundas Software and Formatta Corporation for the opportunity to test this code on real-life applications.
Some ideas for the gripper came from the CToolBarEx flat toolbar by Joerg Koenig. Thanks, Joerg!
Thanks to Robert Wolpow for the CDockContext-based diagonal resizing code.
Thanks to the following people for various bug fixes and/or enhancements: Chris Maunder, Jakawan Ratiwanich, Udo Schaefer, Anatoly Ivasyuk, Peter Hauptmann, DJ(?), Pat Kusbel, Aleksey Malyshev.
Copyright © 1998-2010 DataMekanix. All rights reserved.