Solved

Multiple Windows

Posted on 1998-10-09
5
140 Views
Last Modified: 2013-11-20
Hi

     First of all, a big hi from me to all the
       gurus here.
      
      I recently started MFC programming, and I would
      like to do the following.
      
 
      I want to create multiple windows ( SDI's)
      from a single application at the same time.


      All of them should behave as normal windows
      in their own sense. It means, I should be
      able to minimize, maximize etc,,etc,,
      should be able to have child controls within
      them.

      In a nutshell, if i run the final application
      ( say multi.exe ), I should be able to create
      more than 1 window at the same time.

      Can somebody tell me, how I could accomplish
      this using MFC.
      
      Thanks in advance.
      
Cheers
Check A.C.S
0
Comment
Question by:checkabdoul
  • 3
  • 2
5 Comments
 
LVL 7

Accepted Solution

by:
psdavis earned 50 total points
ID: 1323154
Sure, they're called MDIs.  They will do everything that you're looking for.  There is a multitude of documentation on them so without a specific request, it would be foolish of me to try to explain everything about them except for the fact that it sounds exactly what you are trying to do.  

Any problems with using MDIs?
0
 

Author Comment

by:checkabdoul
ID: 1323155
Hi Davis,
 First of all thanks for the quick reply.

 But oops!!!! That is not what I am looking for.
 ( Sorry for not mentioning it clearly. I know about those MDI's and all other stuff related to that. Even though I am relatively new to MFC programming, I had been developing windows applications for the past 4 years. I know those windows jargons.
No offense meant.)
 
  I do not want to have child windows within MDI's ( which is relatively simple!Right!!). What I want is 2 or more different SDI's,  independant of each other running in the same application.

 It could also be an MDI and an SDI created at the same time from one single application. How could I accomplish this ?

 Please let me know, if i am not clear about what I am talking about.

Thanks and Have a nice day
Check A.C.S




 
 
0
 
LVL 7

Expert Comment

by:psdavis
ID: 1323156
The problem is that an SDI takes over the whole MainFrame.  You can't have more than one SDI running, hence the 'S' in SDI meaning 'Single'.  

MDI's ARE 2 or more different SDI independent of each other running the same application.

I guess the question is: "What features of MDI do you not like that you are trying to stay away from?"

Phillip

0
 

Author Comment

by:checkabdoul
ID: 1323157
Hi Phillip Davis,

  Thanks for the reply.

>> The problem is that an SDI takes over the whole MainFrame.  You can't have more than one SDI running, hence the 'S' in SDI meaning 'Single'.  

MDI's ARE 2 or more different SDI independent of each other running the same application.

I guess the question is: "What features of MDI do you not like that you are trying to stay away from?"

 Yes.. You are right. The exact feature of MDI that I do not want is, I do not want this two SDI's of mine to be stuck withing the MDI umbrella. I want these 2 SDI's to have their own toolbar, statusbar, menu..etc..etc...

   It is like I want to have more than 1 window from a single application. These windows created can be MDI's or SDI's or modeless dialog boxes..

 Thanks again for your replies Phillip Davis.

Check A.C.S


0
 
LVL 7

Expert Comment

by:psdavis
ID: 1323158
> The exact feature of MDI that I do not want is, I do not want this two SDI's of mine to be stuck withing the MDI umbrella.

> I want these 2 SDI's to have their own toolbar, statusbar, menu

AHHH, but they don't have to!!  Create yourself multiple templates! For example, add yourself some CMultiDocTemplates to your application header...

CMultiDocTemplate*   m_pCountryTemplate;
CMultiDocTemplate*   m_pSignatureTemplate;

m_pCountryTemplate = new CMultiDocTemplate(
  IDR_COUNTRYTYPE,
  RUNTIME_CLASS(CCountryDoc),
  RUNTIME_CLASS(CCountryChildFrame), // custom MDI child frame
  RUNTIME_CLASS(CCountryView));

AddDocTemplate(m_pCountryTemplate);
 
m_pSignatureTemplate = new CMultiDocTemplate(
  IDR_SIGNATURETYPE,
  RUNTIME_CLASS(CSignatureDoc),
  RUNTIME_CLASS(CSignatureChildFrame), // custom MDI child frame
  RUNTIME_CLASS(CSignatureView));

AddDocTemplate(m_pSignatureTemplate);

Did you notice the IDR_COUNTRYTYPE and IDR_SIGNATURETYPE parts?  That's where you get your multiple toolbars and menus.  Just create a menu and a toolbar for each of the resource IDs.  Now when they are created via the

pApp->m_pCategoryTemplate->OpenDocumentFile( NULL );      

command, then you will get your MDI window open with it's specific toolbar and specific menu.  Voila!

Phillip
0

Featured Post

Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Adapt this command to show who installed 29 102
Expand data scrubbing tool 13 31
Detect CR LF to each line 12 137
notReplace  challenge 53 102
Introduction: Database storage, where is the exe actually on the disc? Playing a game selected randomly (how to generate random numbers).  Error trapping with try..catch to help the code run even if something goes wrong. Continuing from the seve…
Introduction: Dialogs (1) modal - maintaining the database. Continuing from the ninth article about sudoku.   You might have heard of modal and modeless dialogs.  Here with this Sudoku application will we use one of each type: a modal dialog …
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…

757 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now