|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
||||
|
||||
|
Visual C++ 2005 Designer
I am using the inbuilt designer to build a Multi Document Interface. Now I can inherit the Children forms form the Parent and display them or access their objects. The designer uses the Header flies for everything.
The Problem occurs when I try to inherit a object form the Parent form to one of the Children. Example: (Parent Form/parent.h) #include "Child.h" ref class Parent: ...... { Child^ c = gcnew Child;(No problem here) bla bla..... } But when I also try to do this (Child Form/child.h) #include "Parent.h" ref class Child: .... { Parent^ p = gcnew Parent;(give me a bunch of errors that I know are not wrong) bla bla } I can find anything on this on the internet or the help files. Can some one explain some possible reasons or what it means? Thanks |
|
#2
|
||||
|
||||
|
Re: Visual C++ 2005 Designer
Can you post the errors you're getting?
|
|
#3
|
||||
|
||||
|
Re: Visual C++ 2005 Designer
Quote:
These are very basic errors that i dont have but appear when i do this particular thing. I am starting to think what i am trying to do is not possible or is really complicated. Last edited by 6600gt : 18-12-2006 at 16:21. |
|
#4
|
|||||
|
|||||
|
Re: Visual C++ 2005 Designer
I'm pretty sure what you are trying to do is not possible. . .
Normally how it is a parent can't call methods of a child. I'm unsure why you would want create a parent in a child anyways because the child inherits the parent's methods. . . Depending on what you are planning on doing panels might be the way to go. The MSDN Help is a great tool for any programmer. The help section for Inheritance is at http://msdn.microsoft.com/library/de...nheritance.asp |
|
#5
|
|||
|
|||
|
Re: Visual C++ 2005 Designer
Can you explain why the parent needs to call child functions. I am so confused.
|
|
#6
|
|||||
|
|||||
|
Re: Visual C++ 2005 Designer
I was just now actually studying for my Software final and saw a section of notes that that will help explain Parent / Child even more. . .
2.3 Inheritance ·Allows the derivation of one class from another. ·Subclasses or child or derived classes contain all of the methods and attributes of the parent or super or base class. ·The subclass may override some of the inherited methods ·The subclass may also add new methods and attributes. oExample: Military platform base class – robot, UAV, soldier, tank, airplane, etc. child classes. ·Specialization – a subclass that inherits from a superclass and has additional specification. Elevator button is a kind of control but all buttons are not elevator buttons. Elevator button is a specialized button. ·Generalization – the opposite of specialization. ·Inheritance increase reuse and thus reduces the total volume of code needed – less to write, test, document, etc. |
|
#7
|
||||
|
||||
|
Re: Visual C++ 2005 Designer
Quote:
I might just have to go with panels. Only think I don't like about them is that hey are not as easy as form windows to arrange and close and open as you wish. Any other suggestions? |
|
#8
|
||||
|
||||
|
Re: Visual C++ 2005 Designer
I think what you are trying to do is call a method that is a member of the Parent class from a MDI child form of class Child. If that is not what you are trying to do then disregard the rest of this post, and I'm confused.
If you are trying call a method that is on the MDI parent form, then this has nothing to do with inheritance, other than that both classes must inherit from the System.Windows.Forms.Form class. Note that the Form class has a property called MdiParent that is a reference to the instance of the Form that is the MDI container. Now, to access methods that are members of the MDI parent, you have to cast that property as whatever class it really is. From what you posted, it would be: Code:
Parent^ myParent = dynamic_cast<Parent^>(this->MdiParent); Code:
myParent->SomeMethod(); |
|
#9
|
||||
|
||||
|
Re: Visual C++ 2005 Designer
Thanks.
I put this in Quote:
Quote:
![]() Last edited by 6600gt : 20-12-2006 at 16:01. |
|
#10
|
||||
|
||||
|
Re: Visual C++ 2005 Designer
After reading through this (and your post from September about a similar type of issue), it's not readily apparent how your MDI project is set up. My first MDI project in VC++ took a lot of hours of hair pulling and coffee until I could readily pass information around. If you would like, PM me and you can zip up & email me your project to look at. I'm assuming you've been using the free VC++ available from Microsoft's website? |
|
#11
|
||||
|
||||
|
Re: Visual C++ 2005 Designer
Quote:
Quote:
Last edited by 6600gt : 21-12-2006 at 15:50. |
|
#12
|
||||
|
||||
|
Re: Visual C++ 2005 Designer
Quote:
), and the function definitions should go in the cpp files.The long answer is best left to some research into good programming practices, you can always start with the ubiquitous Wikipedia (http://en.wikipedia.org/wiki/Header_file) to get more information. -Eric |
|
#13
|
||||
|
||||
|
Re: Visual C++ 2005 Designer
Thanks for all the help.
Now I have a new problem and I can't find any useful information on it. Main^ main = dynamic_cast<Main^>(this->MdiParent); for(count = 0; count < 10; count++) { number = main->serialPort1->BytesToRead; //Error } Quote:
Searching on the internet hasn't explained it much. |
|
#14
|
||||
|
||||
|
Re: Visual C++ 2005 Designer
I am curious to see your project setup as well. You should have a Main.h which houses the Main class declaration, and a Main.cpp for the Main class's code. You should also have a Form3.h and a Form3.cpp. You need to make sure that any code that references the Main class from the Form3 class resides in the Form3.cpp, since you can't have Main.h include Form3.h while at the same time Form3.h includes Main.h since this will cause errors.
I zipped a simple MDI demo application and attached it to the post. I hope it shows what I am talking about. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Visual C++ 2005 Forms | 6600gt | Programming | 7 | 20-09-2006 00:05 |
| LEGO digital designer | tiffany34990 | Chit-Chat | 2 | 08-10-2005 07:13 |
| Bridge Designer | Cyberguy34000 | Chit-Chat | 4 | 13-08-2005 21:07 |
| Graphic Designer / Animator | Jay5780 | Career | 1 | 05-06-2001 20:05 |