Button soll Dialog öffnen!

scorpionx

Mitglied
Hallo,

ich weiß ist villeicht eine Simple Sache für euch, aber icih hab echt keine Ahnung!
So zu meiner Frage!

Was muss ich machen, wenn ich will, dass wenn man auf einen Button klickt das ein neues Dialog erscheint?

Noch besser wären ein paar Links oder Suchwörter! Weil ich keine Ahnung hab wonah ich suchen soll! Hab aber irgendwie schon was mit CDialog gelesen und so!
:-(

Grüße

Tolga
 
Ich gehe mal davon aus, dass du im Ressourceneditor einen Dialog erstellt und eine Klasse (z.B. CMyDialog) dazu angelegt hast.
Dann brauchst du in der OnClick-Routine des Buttons nur folgenden Aufruf:
C++:
CMyDialog dlg;
dlg.DoModal();
Gruß
MCoder
 
Kannst du mir es auch erklären warum das so ist?

Damit ich es lerne:rolleyes:

EDIT: Nun hab ich das eingefügt! SO:
Code:
        CDialog::OnOK();
	void OnClick (USHORT LEFT_BUTTON );

ja wenn ich auf OK drücke kommt nichts schließt sich einfach!


Danke für die Hilfe
 
Zuletzt bearbeitet:
Ich vermute mal, deine beiden Codezeilen stehen in der OnOk()-Funktion eines Dialoges?
Die Zeile "void OnClick (USHORT LEFT_BUTTON );" enthält dann wahrscheinlich den Code zum Starten eines Dialogs?
Diese OnClick() Funktion solltest du auch mal zeigen, darin wird wohl die Ursache dafür liegen, das nix passiert.

Zu meinem Codebeispiel gibt's eigentlich nichts weiter zu erklären. Die Dialogklasse der MFC hat einen Member "DoModal()", der ein modales Dialogfenster anzeigt.

Gruß
MCoder
 
ja sollte es nicht?

eigentlich sollte mein 2. Dialog mit "void OnClick (USHORT LEFT_BUTTON );" starten tut es aber nicht!

kannst du mir nicht erklären wie ich es machen muss? hab auch schon OnClick gesuch aber da steht auch irgendetwas mit "COleControl::OnClick"

noch neben bei mein dialog heißt IDD_DIALOG1
 
Der Button, bei dessem Klick ein anderer Dialog geöffnet werden soll, braucht erst mal eine Methode für das Klick-Ereignis. Wenn du mit Visual Studio arbeitest, kannst du die mit dem KLassenassistenten (VC6) oder auf der Eigenschaften-Registerkarte des Buttons (ab VC2003) hintzufügen.

In diese Methode schreibst du sinngemäß den Code hinein, den ich schon mal gepostet habe.
Die Zeile "void OnClick (USHORT LEFT_BUTTON );" ist in der Form nur eine Funktionsdeklaration, die so gar nichts tut.

Gruß
MCoder
 
void CDlgListPass::OnSearch()
{
CDlgSearch dlg;
dlg.DoModal();
}


vl hilft dir das weiter ich bin im Dialog DlgListPass und wen ich den Butten Search drùcke dann wird der Text der oben steht aufgerufen und somit ein neuer Dialog geòfnet

sry fùr die komigen ùs und òs sitze momentan an einer spanischen Tastertur und dort gibt es keine umlaute
 
Zurück