Wie wurde dieser Dialog gemacht?

stud85

Grünschnabel
Hallo, jetzt habe ich als MFCneuling noch eine weitere Frage.
Ich habe unten einen Screenshot einer GUI angehangen, bei welcher mich die Realisierung interessiert. Links befinden sich Schaltflächen mit denen man in dem rot umrandeten Bereich verschiedene Inhalte anzeigen lassen kann. (Wie bei Tabs - Ist das ein Tab Control?). Ich möchte hinzufügen, dass die Anwendung die ich erstelle dialogbasiert ist.
Vorallem würde mich interessieren:

- Welche Elemente werden dafür verwendet (Tabctrl etc..)?
- In groben Zügen wie mache ich das?

Ich wäre für jede Hilfe dankbar.
MfG
 

Anhänge

  • Menü.jpg
    Menü.jpg
    67,2 KB · Aufrufe: 60

MCoder

Erfahrenes Mitglied
Hallo,

der Steuerelemente-Bereich könnte eine ListView sein oder auch ein selbst erstelltes Control. Der linke Bereich ist ein Child-Dialog, der entsprechend Auswahl im Steuerelemente-Bereich angezeigt wird.

Gruß
MCoder
 

stud85

Grünschnabel
Danke für die Antwort MCoder.

Wie kann ich denn einen Child Dialog in meinen Hauptdialog einbetten? Wie funktioniert das?
 

MCoder

Erfahrenes Mitglied
Wie kann ich denn einen Child Dialog in meinen Hauptdialog einbetten? Wie funktioniert das?
Du erstellst eine Dialogresource ohne Titel und Rahmen und der Eigenschaft "child" ("untergeordnet" beim deutschen Studio). Der untergeordnete Dialog wird mit der Methode "Create" erstellt (den Hauptdialog als Parent angeben!) und mit "MoveWindow" positioniert. Mit der Methode "Show" wird die Sichtbarkeit gesteuert. Bei Umschalten zwischen mehreren Dialogen wird also der jeweils aktuelle angezeigt (SW_SHOW) und alle anderen versteckt (SW_HIDE).

Gruß
MCoder
 

stud85

Grünschnabel
Danke! Soweit funktioniert das Erzeugen des Child-Windows mit Create() über folgenden Quellcode:

pDialog = new CServerContentDlg();
//Wobei pDialog ein Zeiger auf CDialog ist, den ich im Konstruktor des Hauptdialogs auf NULL initialisiere.

if(pDialog != NULL)
{
BOOL ret = pDialog->Create(IDD_SERVER_CONTENT,this);
if(!ret) //Create failed.
{
AfxMessageBox(_T("Error creating Dialog"));
}
pDialog->ShowWindow(SW_SHOW);
else
{
AfxMessageBox(_T("Error Creating Dialog Object"));
}


Nun stellt sich mir die weitere Frage:
-> Wie schaffe ich es, dass das Childfenster an der selben Stelle bleibt auch wenn ich das Hauptfenster bewege?
 

stud85

Grünschnabel
Genau das war mein Fehler. Stil -> "Untergeordnet" hat gefehlt. Jetzt ist das Unterfenster fest mit dem Hauptfenser verbunden.
Vielen Dank nochmal fuer die gute Hilfe.
Schöne Grüße.
 

Neue Beiträge