This example is using a Quick-and-dirty method for producing dynamic dialogs. Its work but very slow to display. Its even slower than complie from C (???). This implementation is a better dynamic dialogs than examples 'Muldia.zip' ( pascal), 'Mpd.zip'( C ) or o2mpd2.zip( C ). It is because it can use the 'Tab' key only to shift dialogs and control. This is a good ideal to dowload the original example from Microsoft Forum which is written by C (not C++). The file name are 'Dyndlg.exe' or 'dyndlg.zip' (I not sure in which format. I download it from internet). You can download Rory Jaffe's Example. (BCPPWIN lib 15 [OWL2]).The 'unit' file are same as this example, of course in C++. But you can't complie that since the resource file is missing. In this file, you will have odyndlg.pas Dynamic dialogs change object unit file. ddlgdem.pas demo program; ids.pas constant unit for demo program; dyndlg.res resource file for demo program; dyndlg.txt this file; msdyndlg.exe Example file from Microsoft. This is 16Bit example. My example is using same .res, therefore this is same. But this is 'faster'. For technical information please refer to MSJ vol.9 no.3 Mar 94, 'Simplify and Enhence Your Application's user Interface with Dynamic dialog Boxes' ----Sorry, I do have not this article. Any Bug and suggestion, Please send to: Compuserve: 100426,21 internet: Ping.Shuen.Lee@hk.Super.net by Ping-Shuen LEE HongKong 31/07/94 The Following information is written by Rory Jaffe; Dyndlg.h and dyndlg.cpp provides a method for producing quick-and-dirty dynamic dialogs (quick to program, but a little slow to display). All you have to do is place an invisible frame in the dialog box surrounding the area where the controls are to be positioned. Then, you place one set of controls in that box. Make a copy of the frame, and position it OUTSIDE the dialog box. Place the second set of controls in there. You have now created two sets of controls. Dyndlg will move the second set so that it overlaps the first, as if the second frame (and its contents) were moved to exactly match the position of the first frame. If you make one set of controls invisible, you have done everything you need to do to make it appear as if only one set of controls existed. If you don't make one set of controls invisible, you have to set hideatstart to be TRUE, then it will be hidden by the program. To change visible sets so that the dialog box now shows your second set of controls, call the Activate method with the set number to make visible. The formerly visible set will disappear. Magic! You can have many sets of controls, but no more than 256 controls, hidden and visible, in a dialog box. You also can have multiple dynamic areas in a single dialog box by having two instances of this class in your dialog class . Then, you can independently alter the appearance of the two parts. If you are a real sadist, you can have all sorts of dynamic areas. The idea of moving frames is from the article by Atif Aziz in MSJ vol. 9 no. 3. GetDlgCtlRect and MoveSet are adapted (and somewhat changed) from that article. The rest of the code represents my simple-minded contribution. I've mentioned slowness and the 256 control limit as drawbacks. Apparently you can flash different dialog boxes in frames on windows using OWL II. I haven't figured out how to have two different dynamic areas. If anyone can contribute the basic code for that (so that we all don't have to keep on reinventing the wheel) I'd be greatly appreciative. Mr. Aziz has another solution for the 256 control limit (but not the slowness). His solution is quite marvelous, tremendously complex, and overkill for my application. It also makes transfer buffers unuseable. However, I do recommend reading his article.