Unabhängige Dialogbox



  • mit

    CAboutDlg AboutDlg;
    AboutDlg.DoModal();

    wird ja nachdem man auf den entsprechenden Button gedrückt hat eine About DialogBox aufgerufen, aber man kann dann nur noch in dieser etwas machen. Klick ich jetzt auf das Hauptprogramm machts einmal Bing! Und nix regt sich. Wie mach ich das, dass die Dialogbox angezeigt wird, aber ich im Hauptprogramm trotzdem weitermachen kann?



  • AboutDlg.Create(...) anstatt DoModal()



  • error C2661: 'Create' : no overloaded function takes 0 parameters 😕



  • lol, du musst natürlich noch ein paar Parameter an die Create Funktion übergeben! Dafür schau in die Dokumentation!



  • Ja woher soll ich das denn wissen!



  • Soll wohl nen schlechter Scherz sein. Erstens hab ich da extra 3 Pünktchen hingemacht, da sieht man doch sofort das da noch Parameter nötig sind. Und wenn man dann noch solche Fehlermeldungen bekommt dann guckt man erstmal in der Dokumentationen nach.

    RTFM! und lern C++! 😡



  • bin ja gerade dabei auch wenn ich mich gleich in MFC stürze, aber im moment hab ich auf so nen theorie scheiß ehrlichgesagt kein bock



  • hey jeder hat sich mit "so nen theorie scheiß" mal auseinandersetzen müssen...meinst man lernt das von heut auf morgen?!
    tztzt leute gibts... 😕

    Striker



  • ja ich hab besseres zu tun als so n theorie scheiß zu lernen, ich will halt nur just for fun kleine Programme schreiben, basta



  • Aber mal vorher in die Hilfe schauen ist doch wohl nicht zuviel verlangt?

    Ich mein du musst den Begriff ja nur auf msdn.microsoft.com eingeben oder wenn du die MSDN lokal hast F1 drücken...



  • Perner: Spinner! 😡



  • ich kann aber kaum englisch, deswegen hilft mir die dämliche msdn gar nich weiter



  • Es stehen aber ziemlich oft Bespiele dabei...

    Und wenn du kein bischen Englisch kannst dann musst du es eben halt lernen. Und mit der weile erkennt man schon anhand der Parameter was Sache ist. Und wenn du aufsowas zu lernen keinen Bock hast dann musst du halt hoffen das es genug Forenbenutzer gibt die dir auf all deine Fragen antworten... Manche ärgert es halt das sie sich den ganzen Therorierscheiss angetan haben und dann jemand sich nicht mal ein klein wenig Mühe gibt es vorher wenigstens zu versuchen und alles vorgekümmelt haben wollen. Oder viele Probieren es erst gar nicht aus
    und stellen schon die nächste Frage. 😞

    Der letzte Teil war eher allgemein und nicht auf dich bezogen...



  • Ich wollte doch einfach nur diese kleine info wissen 😞
    Muss ich wohl wie immer alles selber machen



  • Zurück zu deiner Frage:

    Um ein Nicht-Modales Dialogfeld zu erzeugen, erstellst du einfach ein objekt der Dialogklasse auf dem Heap mit new.
    Dann rufst du Create und ShowWindow auf.

    z.B.:

    CDeineDialogKlasse * m_pDeinDialog = new CDeineDialogKlasse;
    // Anderer Code
    m_pDeinDialog->Create(ID_VON_DEINEM_DIALOG);
    m_pDeinDialog->ShowWindow(SW_SHOW);
    

    Ich hoffe das hilft dir. Du solltest dann einen Übernehmen-Button in den Dialog einfügen, wo die Daten An das Hauptprogramm werden.

    Ich finde aber auch dass du vorher einmal richtig C++ lernen solltest, da du sommst nichts schaffst und keine Zusammenhänge in MFC verstehst. Programmieren ist eine Eigene Wissenschafft die viel Übung und theoretisches Wissen verlangt!!



  • Ach ja bevor ich es vergesse!

    In der OnCancel()-Funktion deines Dialogs solltest du den Speicherbereich auf dem Heap wieder ordnungsgemäß freigeben, da sonst eine Speicherlücke entsteht.

    Siehst du jetzt sollte man wissen, wie das geht. 😉



  • Jau danke, genau das habe ich gesucht 🙂
    Warum nicht gleich so?

    Ich weiß ich soll c++ lernen und so aber ich will ja nix großes Programmieren, halt nur n paar mini programme



  • Original erstellt von jfuechsl:
    **Ach ja bevor ich es vergesse!

    In der OnCancel()-Funktion deines Dialogs solltest du den Speicherbereich auf dem Heap wieder ordnungsgemäß freigeben, da sonst eine Speicherlücke entsteht.

    Siehst du jetzt sollte man wissen, wie das geht. ;)**

    Und was wäre an so ner Speicherlücke schlimm?

    [ Dieser Beitrag wurde am 12.09.2002 um 18:09 Uhr von Perner editiert. ]



  • Das du mit der Zeit immer weniger Speicger zur Verfügung hast.
    W2K/WXP machen dies zwar beim Programmende automatisch aber bessere Programmierung ist es.
    Solltest du das Programm 7/24 laufen haben und pausenlos den Dialog öffnen kannst du zusehen wie der freie Speicher kleiner wird bis nichts mehr funktioniert.
    Die gab es schon in W98/ME in bestimmten BS-Routinen. Deshalb lief dieses auch nicht 7/24/365

    An fast alle anderen:
    Beleidigungen,etc. werden hier nicht akzeptiert. Jeder hat mal angefangen.

    An Perner:
    Du solltest es Dir zu Herzen nehmen und Lösungen nach kleinen Vorgaben selbst suche sonst wirst du hier nicht immer Hilfe finden, da die Leute hier nicht für Dich Programmieren.
    Besorge Dir ein Buch auf Deutsch oder schaue vorher in die FAQ oder
    www.mut.de ---> leseecke VC++ 6 in 21 Tagen.
    😉

    [ Dieser Beitrag wurde am 12.09.2002 um 19:22 Uhr von Unix-Tom editiert. ]



  • Zu all dem kann ich nur sagen, dass man sich vielleicht erst einmal vernünftig in die Grundlagen einarbeiten sollte, z.B. C/C++-Grundlagen, oder auch VisualBasic, damit man erst einmal versteht, was programmieren bedeutet. Und dann später in die - weitaus komplexere - Windows-Programmierung. Habe schon so oft Sourcen von Programmierern gesehen, bei denen Copy&Paste wohl an der Tagesordnung ist. Anständige Objektorientierung, Code an der richtigen Stelle, Derivation, Abstraktion, etc. fehlen da meistens.


Log in to reply