Embed 'child' dialogs into your main dialog

Environment: VC6, VC5

One of the challenges I was recently set was to produce some code that would allow 'child' dialogs to be added to a 'parent' dialog at run time so that all the controls operated as if they were part of the original dialog.

To this end I came up with some code that reads the dialog template resource file of the child dialogs and embeds the controls onto the parent dialog.

Using the code is simple. Derive your parent dialog from the CMultiDialog class and call the AddDialog function to embed your child dialog. The first parameter is the ID of the child dialog template and the second parameter is the ID of a marker control (usually a static control) that marks the position of the child control. This marker control will be hidden after the child controls have been embedded.

Place follow lines into the OnInitDialog function of the parent dialog. // Embed the dialog AddDialog( IDD_DIALOG1, IDC_MARKER );

Access controls on the dialog as per a normal dialog control. eg.:-

   m_pListBox = (CListBox*) GetDlgItem( IDC_LIST1 );
   if ( m_pListBox ) {
      m_pListBox->AddString( "First" );
      m_pListBox->AddString( "Second" );
      m_pListBox->AddString( "Third" );
   }

I've not extensively tested this code - so don't shoot me if it breaks! :o)

Downloads

Download demo project - 33 Kb
Download source - 3 Kb


Comments

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • The explosion in mobile devices and applications has generated a great deal of interest in APIs. Today's businesses are under increased pressure to make it easy to build apps, supply tools to help developers work more quickly, and deploy operational analytics so they can track users, developers, application performance, and more. Apigee Edge provides comprehensive API delivery tools and both operational and business-level analytics in an integrated platform. It is available as on-premise software or through …

  • Live Event Date: September 16, 2014 @ 11:00 a.m. ET / 8:00 a.m. PT Are you starting an on-premise-to-cloud data migration project? Have you thought about how much space you might need for your online platform or how to handle data that might be related to users who no longer exist? If these questions or any other concerns have been plaguing you about your migration project, check out this eSeminar. Join our speakers Betsy Bilhorn, VP, Product Management at Scribe, Mike Virnig, PowerSucess Manager and Michele …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds