Dialog als nichtmodal
-
Hallo zusammen!
Ich bin blutiger Anfänger und versuche ein Dialogfenster zu erstellen, das einen Schieberegler beinhaltet, der beim Verstellen direkt reaktionen auslösen soll. Dazu bräuchte ich einen "nichtmodalen" Dialog. Modal hat es schon hingehauen (DoModal()), aber das bringt mir nichts. In anderen Foren habe ich schon von Create(..) und Show(..) gelesen, hat aber auch nichts gebracht (ist zwar ausführbar gewesen, das Fenster erscheint aber nicht:::)
Würde mich sehr freuen, wenn ich hier Hilfe kriegen könnte.Gruß Jörg! :p
-
Hallo
probiers mal mit
ShowWindow(SW_SHOW);Gruß
Umleag
-
also du must dir nen zeiger auf den dialog holen den du nichtmodal öffnen willst und in dann mit create erstellen. über den zeiger haste dann vollen zugriff auf die möglichen functionen & variablen.
DeinCDialog *pDlg = new DeinCDialog(); pDlg.Create(IDD_DEIN_CDIALOG, this);ne einfache erklärung dafür findest du unter
http://www.se.fh-heilbronn.de/usefulstuff/VCPLUS6/inhalt.htm
genauer unter
- Tag 8 Bilder, Zeichnungen und Bitmaps
- Listing 8.1: Die Funktion OnInitDialog[NEW EDIT]
@Umleag
was bitte hat ShowWindow damit zu tun, das macht einen dialog sichtbar oder versteckt ihn.mfg
LowFly
-
-
dann hat das aber eine andere uhrsache nämlich das er den befehl create bestimmt nicht richtig benutzt hat

-
Dialog6 *pDlg = new Dialog6(); pDlg.Create(IDD_DIALOG6, this);error C2228: Der linke Teil von '.Create' muss eine Klasse/Struktur/Union sein

-
Hallo,
so sollte es gehen:Dialog6 *pDlg = new Dialog6(); pDlg->Create(Dialog6::IDD, GetDesktopWindow()); pDlg->ShowWindow(SW_SHOW);Und das ShowWindow(SW_SHOW); muß aufgerufen werden, von aleine zeigt sich das dlg nicht an, wird nur erstellt!
lg
pixel
-
joergh schrieb:

Grundlagentutorial? Ehrlich, wenn du den Fehler nicht beheben kannst, bist du IMHO noch nicht so weit, dass du dich mit GUI-Entwicklung beschäftigen solltest.
P.S.: ->
-
@joergh
ich schrieb einen zeiger auf den dialog (Zeiger = ->)Dialog6 *pDlg = new Dialog6(); pDlg[b]->[/b]Create(IDD_DIALOG6, this);richtige schreibweise dann klappt das auch mit dem ....
@pixel
- ich hab das tut schon selbst nachvollzogen....
- wenn er den dialog mit create richtig erstellt wird er ihm auch angezeigt OHNE dabei ShowWindow benutzen zu müssen.
mfg
LowFly
-
Hallo,
@LowFly, was mach ich dan selber falsch wenn es nicht angezeigt wird?
Ich erzeuge ja mein dialog so wie du es beschrieben hast, aber trotzdem wird
es nicht angezeigt solange ich nicht das SW_SHOW setze?!
Irgend etwas stimmt doch da nicht!!!
CWaitDlg pWaitDlg = new CWaitDlg(); pWaitDlg->Create(IDD_WAIT_DIALOG, GetDesktopWindow()); // hab nur das this mit GetDesktopWindow() ersetzt! //pWaitDlg->ShowWindow(SW_SHOW);grüsse
pixel
-
Hallo
Create erzeugt nur einen Zeiger auf den Dialog.
Um ihn anzuzeigen ist ShowWindow erforderlich, da der Dialog nicht modal ist!pDlg->ShowWindow(SW_SHOW);Beachte, das du den Dialog auch selber zerstören mußt!
Gruß
Umleag