G
Guest
Hi all,
I am trying to develop an application which is replacing an obselete
application running in DOS on old hardware. We are replacing it with a system
running Windows XP, and my new software which will be written in Visual C++
..Net.
The old system has a number of screens, each of which can be accessed using
one of the Function keys (eg. F6 goes to the System Status screen). Each of
these screens has some elements which are the same. For example, each screen
has two listboxes at the bottom for Error Messages and Alarm Messages, each
screen has a similar header bar etc.
The question really is, how do you suggest I implement this? From my
experience (mainly in VB6, but also a quite a bit of experience now in .Net
languages) I thought of using a Multiple Document Interface (MDI) paradigm. I
could have one 'parent' form which had the list views etc on them, and then
each screen could be a child form. This sounds perfect in theory, but there
are quite a number of problems. These include the difficulty of communicating
from parent to child (it seems that you have to cast it to the type of the
child form, which is difficult if you're not sure what form is displayed at
the current time!). Also, these child forms should not be able to be moved
around, resized, or minimised, but even if I set the child form to be
maximised, and turn off all the options for the control box buttons they
still seem to appear! The only way I have managed to get it to look how I
want is to set the child form to have no border, and to manually size it to
*just* the right size so that it fits inside the parent form perfectly. Of
course if the size of the parent form changes then these pixel sizes will
need to be changed.
As I've said, overall I seem to have had quite a few problems with the MDI -
the main one being the communication between parent and child (and vice
versa) and I'm wondering if I should still keep trying to solve these
problems (if anyone has any solutions I'd love to hear them) or if there is a
better way to do it?
Thanks,
Robin
I am trying to develop an application which is replacing an obselete
application running in DOS on old hardware. We are replacing it with a system
running Windows XP, and my new software which will be written in Visual C++
..Net.
The old system has a number of screens, each of which can be accessed using
one of the Function keys (eg. F6 goes to the System Status screen). Each of
these screens has some elements which are the same. For example, each screen
has two listboxes at the bottom for Error Messages and Alarm Messages, each
screen has a similar header bar etc.
The question really is, how do you suggest I implement this? From my
experience (mainly in VB6, but also a quite a bit of experience now in .Net
languages) I thought of using a Multiple Document Interface (MDI) paradigm. I
could have one 'parent' form which had the list views etc on them, and then
each screen could be a child form. This sounds perfect in theory, but there
are quite a number of problems. These include the difficulty of communicating
from parent to child (it seems that you have to cast it to the type of the
child form, which is difficult if you're not sure what form is displayed at
the current time!). Also, these child forms should not be able to be moved
around, resized, or minimised, but even if I set the child form to be
maximised, and turn off all the options for the control box buttons they
still seem to appear! The only way I have managed to get it to look how I
want is to set the child form to have no border, and to manually size it to
*just* the right size so that it fits inside the parent form perfectly. Of
course if the size of the parent form changes then these pixel sizes will
need to be changed.
As I've said, overall I seem to have had quite a few problems with the MDI -
the main one being the communication between parent and child (and vice
versa) and I'm wondering if I should still keep trying to solve these
problems (if anyone has any solutions I'd love to hear them) or if there is a
better way to do it?
Thanks,
Robin