|  | Environment: | 
| VC6
Win9x, NT4, MFC
 | 
| History: | 
| First Released: August 11, 1998
Date Posted: April 27, 2000
 Article Last Updated: April 27, 2000
 Code Last Updated: August 04, 2000
 | 
by Hans Bühler
This article replaces my former article "Dynamic child window positioning"
(cdxCDynamicControlsManager).
See the what's new section to find out whether it's worth changing
your code.
What's this article about?
I'll introduce you to some of my code that has will make your windows support automatic
repositioning of their child controls. I'll call such windows dynamic (since they
don't have a static size and child control ordering but dynamic ones):
   |  | => |  | 
The image below shows the docked dialog:

What classes are part of this release?
- cdxCDynamicWnd,- cdxCDynamicWndEx
 General base class(es) used to implement dynamic child window repositioning in any- CWnd-derived class.
 
- cdxCDynamicDialog
 A- CDialogreplacement that allows you to dynamically move your controls.
 
- cdxCDynamicChildDlg
 The same as a dialog base-class for child window dialogs.
 
- cdxCDynamicFormView
 A- CFormView, now supports the scrollbars, knows its own size perfectly and stuff!
 
- cdxCDynamicPropSheet,- cdxCDynamicPropPage
 The dynamic- CPropertySheet/- CPropertyPagereplacement.
 
- cdxCDynamicBar,- cdxCDynamicBarDlgand- cdxCDynamicBarT<>
 A controlbar with an embedded dialog that is dynamically moving its childs.
 The bar itself uses the CSizingControlBar library by Cristi Posea, published at www.datamekanix.com.
 
  - New and better code :)
 This is why we can not simply replace acdxCDynamicControlsManagercode into acdxCDynamicWndcode. :(
   
- Now works with HWNDsand IDs instead ofCWnds.
 Therefore you don't need to explicitely create DDX control variables anymore. *
   
- Supports "dynamic maps" - as known from message map macros.
 These maps map IDs to a resizable control. *
   
- Now uses ::DeferWindowPos()instead of::SetWindowPos()to decrease flickering (for all classes). *
   
- Anti-Flickering system for cdxCDynamicDialog(looks much better!). *
   
- Supports scrolling in CFormView(and any other class, if you enable it
      by hand). *
   
- "Auto-Positioning" feature for dynamic dialogs & property pages. *
   
- Support for dialogs that are meant to be "child control dialogs" - if often embedd
      dialogs and this class helps to make your child controls remain in a suitable place :) 
   
- A ControlBar solution. 
* ~ Suggested by users of my cdxCDynamicControlsManager :)
However, since I rewrote much of the code of the cdxCDynamicControlsManager, you cannot
switch from that class to my new cdxCDynamicWnd without further work to be done;
converting a cdxCSizingDialog into a cdxCDynamicDialog would need
help by you.
A documentation file is included in the sub-directory
codex/doc/.
Any suggestions & bug-reports are welcome.
Download
| File name | Description | Size | Location | Speed | 
| DynWindow_src.zip | sources & documentation | 111k | datamekanix.com | fast | 
(the .zip file includes the sources of CSizingControlBar v2.43)
Copyright © 1998-2019 DataMekanix. All rights reserved.
 
 |  |