Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Mischung aus Sdi- und Dialogfeldanwendung als Userinterface

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.01.2004, 19:52 Uhr
Philipp



Hallo Leute,

wir haben bei uns in der Schule (Stufe 12) im Moment Facharbeitsphase, ich habe Mathe gewählt. Da hab ich mich nun entschlossen, eine Anwendung zu programmieren, die Flächeninhalte fast beliebiger 2D-Formen berechnen kann. Also nicht nur Rechteck, Dreieck, etc, sondern alles. Realisiert soll das durch ein spezielles UserInterface werden!

Generell soll die anwendung eine SDI-Anwendung werden. Quasi erstmal wie Paint! In den Zeichenbereich kann der User verschiedenste Formen malen, z.B. sowas hier:

www.codetown.de/stuff/Facharbeit1.jpg

Mein Programm muss dann unter Vorgabe bestimmter Parameter diesen Flächeninhalt berechnen. Dabei möchhte ich die Parameter aber auf der gleichen Eben wie der Zeichenbereich haben! D.h. ich will zur Übergabe der PArameter wie z.B. der Genauigkeit kein zusätzliches Dialogfeld einblenden, sondern dieses in die SDI-Andwendung integrieren. Soll dann in etwa so aussehen:

www.codetown.de/stuff/GUI.jpg

D.h. auf der linken Seite der "SDI-Teil", hier kann der Benutzer die zu berechnende Form mit einfach mitteln wie Bleistift, Linie und evtl. noch Kreis/Rechteck zeichnen. Diese verschiedenen Werkzeuge müssen aber ja irgendwo ausgewählt werden, und ich fände es gut wenn das wir in Paint realisiert wird, dass halt auf der rechten Seite "noch so ein Balken" ist, indem man verschiedene Elemente eines Dialogfeldes einbringen kann. Also auch nicht nur die Art des Werkzeuges, sondern auch die Editfelder zur Übergabe von Genauigkeit, Pixel<-> cm Verhältnis zur Umrechnung auf reale Objekte, den Button zum Starten des Rechenvorganges, etc...

Verstanden?

Ich möchte also von euch wissen, wie man nun Dialogfeld- und SDI-Anwendung so kombinieren kann das das funktionert. Wie gesagt in die Richtung von Paint, nur dass ich noch ein paar Elemente mehr auf der Seite "dieses Balkens" brauche!
Gibt es dazu evtl. Hilfe in der MSDN, wenn ja dann wo? Weil ich hab gesucht, aber nix ordentliches gefunden.

Vielen Dank schonmal,
Philipp

Dieser Post wurde am 25.01.2004 um 19:54 Uhr von Philipp editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.01.2004, 20:00 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi, da musst du dir einfach eine Toolbar machen, die du dann am rechten Rand andockst. Wie man eine Toolbar erstellt steht z.b im Ebook Visual C++ in 21 Tagen!
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.01.2004, 20:37 Uhr
Philipp



Mhhh...

Ich hab mich jetzt mal was eingelesen, hab mir das Buch irgendwann mal selber gekauft.

So wie ich das verstehe, ist ne Toolbar nur so eine klein Leiste, wie sie z.B. auch für das Speichern/Öffnen/etc. von Dokumenten verwendet wird. Oder eben um die Werkzeuge in Paint auszuwählen.

Ich aber brauche 2 Sachen : Ich brauche eben einmal diesen rechten Teil, der soll sich 1x aus der Toolbar, in der das aktelle Zeichenwerkzeug auswählbar sein soll, und aus anderen Elementen wie z.B. Editfeldern oder labels zusammensetzen. D.h. die Toolbar ist nur ein Bestandteil dieses "rechten Rahmens"...

Weil so wie ich das verstanden hab können Toolbards das nicht!


Bearbeitung:
Was gut wär, dass wäre halt wenn ich ein Dialogfeld erstellen könnte, und das irgendwie an den rechten Rand der SDI Anwendung heften könnte. Z.b. indem ich es über eine Klasse lade, also z.B. per einer von CDialog abgeleiteten Klasse laden, und darüber dann irgendwie an den rechten Rand setzen. Oder geht das auch mit der Klasse CToolbar? ... Dann hätte ich genau das was ich brauche


Philipp

Dieser Post wurde am 25.01.2004 um 20:57 Uhr von Philipp editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.01.2004, 16:59 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi, du kannst die Größe einer Toolbar beliebig festlegen. D.h. auch das du sie an den rechten Rand mit beliebigen Inhalt "kleben" kannst.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.01.2004, 17:38 Uhr
Philipp




Zitat:

Hi, du kannst die Größe einer Toolbar beliebig festlegen. D.h. auch das du sie an den rechten Rand mit beliebigen Inhalt "kleben" kannst.


Mit toolbar meinst du aber auch wirklich nur die toolbars, die im MS-Ressourcen Editor von VC 6.0 im Ordner "toolbars" zu finden sind, oder meinst du auch noch Dialogfelder, deren Option "toolbar" aktiviert ist?

Weil ich wüsste absolut nicht, wie ich eine normale Toolbar mit nem Listenfeld oder einem Editfeld ausstatten könnte...

Um es noch was deutlicher zu machen, es soll in etwa so aussehen:

www.codetown.de/stuff/GUITest2.jpg

Nur soll das Dialogfeld am rechten Rand FEST! integriert sein, im Moment kann man das noch verschieden, es ist sozusagen ein "fenster im Fenster", es soll aber mit dem SDI-Fenster verschmilzen, sodass es auch nicht mehr einzelnd anwählbar ist...

Philipp

Dieser Post wurde am 26.01.2004 um 17:54 Uhr von Philipp editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.01.2004, 18:56 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


siehe hier
Da ist ein Beispiel wie man eine "Toolbar" erstellt auf die man beliebige Steuerelemente platzieren kann. Du kannst diese Toolbar natürlich dann nach rechts verschieben, größe ändern, etc
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
26.01.2004, 21:56 Uhr
Philipp



Beschimpf mich, schlag mich, ....

Ich finds nicht
Also welches Kapitel? Ich könnte wetten du verstehst mich miss...

Ph
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
26.01.2004, 22:25 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ups sry, hab den falschen link kopiert *lol*:

http://download.pearsoned.de/leseecke/VCPLUS6_21Tg/data/kap21.htm
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
27.01.2004, 17:13 Uhr
Philipp



Ok, des klappt schon halbwegs.

IRgendwie will die Toolbar aber immer auf der Höhe der Dialogbar abschließen, d.h. sie vergrößert ihre Höhe künstich!

www.codetown.de/stuff/GUITest6.jpg

Wie kann ich das umgehen? Die Toolbar soll ganz oben sein und die volle Breite des Fensters nutzen, die Dialogbar die übriggebliebene Höhe!

Der Code in meiner CMainFrame::OnCreate Funktion lautet(standard, hab alles so belassen wie es mir der Assistent generiert hat):


C++:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
        return -1;
    
    if (!m_wndToolBar.CreateEx(this) ||
        !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
    {
        TRACE0("Symbolleiste konnte nicht erstellt werden\n");
        return -1;      // Fehler bei Erstellung
    }
    if (!m_wndDlgBar.Create(this, IDR_MAINFRAME,
        CBRS_ALIGN_TOP, AFX_IDW_DIALOGBAR))
    {
        TRACE0("Dialogleiste konnte nicht erstellt werden\n");
        return -1;        // Fehler bei Erstellung
    }

    if (!m_wndReBar.Create(this) ||
        !m_wndReBar.AddBar(&m_wndToolBar) ||
        !m_wndReBar.AddBar(&m_wndDlgBar))
    {
        TRACE0("Infoleiste konnte nicht erstellt werden\n");
        return -1;      // Fehler bei Erstellung
    }

    if (!m_wndStatusBar.Create(this) ||
        !m_wndStatusBar.SetIndicators(indicators,
          sizeof(indicators)/sizeof(UINT)))
    {
        TRACE0("Statusleiste konnte nicht erstellt werden\n");
        return -1;      // Fehler bei Erstellung
    }

    // ZU ERLEDIGEN: Entfernen, wenn Sie keine QuickInfos wünschen
    m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
        CBRS_TOOLTIPS | CBRS_FLYBY);

    return 0;
}



THX!
Philipp
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: