Wie kann man ein Bild in eine MessageBox einbauen?



  • Ich denke mal der Verückte Bastler will nur ne Messagebox nutzen mit Ausrufezeichen, Fragen zeichen etc erstellen.

    Ich nutze dazu folgenden Code:

    int MessageB= Application->MessageBoxA("Box","Hinweis",68);
    if(MessageB==1)
    {
           //OK gedrückt
    }
    

    zum Verständniss:

    bis zum "Hinweis" ist ja alles klar. zu der "68" diese setzt sich einfach aus den gewünschten Schaltflächen und dem gewünschten Bild zusammen. Einfach folgende Zahlen nutzen:

    Für die gewünschten Schaltflächen in (klammern) stehen die Rückgabewerte

    0 OK(1)
    1 OK und Abrechen(2)
    2 Beenden(3), Wiederholen(4), Ignorieren(5)
    3 Ja(6), Nein(7), Abbrechen
    4 Ja, Nein
    5 Wiederholen, Abbrechen

    zu den Bildern:

    16 Warnkreuz
    32 Fragezeichen
    48 Ausrufezeichen
    64 Infozeichen

    Also zeigt der Code oben eine Message mit Infozeichen und den Schaltflächen Ja, Nein (64+4=68) 😃

    Ich hoffe hier nicht über die Stränge geschlagen zuhaben. 🙄
    Mir hat das Forum mehr als genug geholfen deshalb hoffe ich mit dem Beitrag vieleicht den einen oder anderen geholfen zu haben.

    Grüße Noli



  • Hallo

    und statt der Zahlen selber kannst du auch gleich die Konstanten benutzen, die dafür definiert sind.

    bis bald
    akari



  • akari schrieb:

    Hallo

    und statt der Zahlen selber kannst du auch gleich die Konstanten benutzen, die dafür definiert sind.

    bis bald
    akari

    Die Zahlen sind schon definiert. Ist das gleich ob ich zum beispiel
    MB_OK schreibe oder dafür 1 nehme. Finde es wesentlicher einfacher die ZAhlen zu nehmen als MB_YESNOCANCEL etc zu schreiben.

    😉
    Grüße



  • Einfacher zu schreiben oder einfacher zu lesen?
    Wie oft schreibst Du den Code und wie oft wird der Code wieder gelesen?

    Gruß,

    Alexander



  • Alexander Kempf schrieb:

    Einfacher zu schreiben oder einfacher zu lesen?
    Wie oft schreibst Du den Code und wie oft wird der Code wieder gelesen?

    Gruß,

    Alexander

    ok, beim lesen wird es schwierig für jemanden der die zahlen nicht kennt.
    zum schreiben: ich habe ne Funktion der ich die parameter übergebe. Da übergeb ich einfach die Strings und einen Int- wert und fertig. Die Funktion gibt mir zurück was geklickt wurde und gut.

    Finde es für mich so einfacher 2 Strings 1 int-Wert und zurück kommt ein Int- wert und gut.

    denke mal ist klar wie ichs meine. 😉

    Grüße Noli



  • Noli schrieb:

    denke mal ist klar wie ichs meine. 😉

    Mir nicht.

    Gruß,

    Alexander



  • Alexander Kempf schrieb:

    Noli schrieb:

    denke mal ist klar wie ichs meine. 😉

    Mir nicht.

    Mir auch nicht.

    Was ist denn bitte lesbarer?

    int MessageB= Application->MessageBoxA("Box","Hinweis",68);
    //-- oder
    int MessageB= Application->MessageBoxA("Box","Hinweis",MB_OK + MB_ICONEXCLAMATION);
    


  • ok, würde einfach sagen wir beenden die diskussion. Der eine schreibt so der andere so. Ich gehe davon aus das

    int MessageB= Application->MessageBoxA("Box","Hinweis",MB_OK + MB_ICONEXCLAMATION);
    

    die Regel, und auch eindeutiger ist. Ich habe es eben mit den Zahlen gelernt und habe es so von Anfang an so verwendet, das funzte und warum sollte ich da was ändern?

    Habe mir in der msdn mal das Kapitel MessageBox zugeführt.
    Man kann sich dran gewöhnen es auch mit MB_OK und Co zu schreiben. 😃

    Grüße Noli



  • Noli schrieb:

    das funzte und warum sollte ich da was ändern?

    Vielleicht, weil man ab und zu noch was dazulernt. Mein Code sieht heute auch anders aus als vor fünf Jahren,
    sogar anders als vor einem Jahr.
    Die Aussage "es funktioniert, also ist es richtig" halte ich für nicht ganz korrekt. Was hilft es, wenn Dein Programm
    heute funktioniert, aber in einem halben Jahr eine Änderungsanforderung kommt und Du Deinen eigenen Code nicht mehr
    verstehst, bzw. viel länger dafür brauchst? Dass ein Programm funktionieren sollte, sehe ich als selbstverständlich
    an, aber Wartbarkeit und Erweiterbarkeit halte ich für (fast) genauso wichtig. Und da ist es von großem Vorteil,
    wenn der Code gut lesbar ist.

    Allerdings sind das Betrachtungen, die mit dem ursprünglichen Thema recht wenig zu tun haben 🙂

    Gruß,

    Alexander



  • Noli schrieb:

    Habe mir in der msdn mal das Kapitel MessageBox zugeführt.
    Man kann sich dran gewöhnen es auch mit MB_OK und Co zu schreiben.

    Zeigt doch meine Absicht auch neues zu lernen. Ist nur manchmal schwer eingefahrenen Bahnen zu verlassen. 😉

    Will ja auch Codes schreiben die auch von anderen gelesen werden können. Nur der eine erklärt es so und der andere so. Werde wohl öfters in die msdn schauen wie es da drin steht. Denke mal das dort die allgemein verständliche schreibweise steht. 🙂

    Grüße Noli



  • Noli schrieb:

    Werde wohl öfters in die msdn schauen wie es da drin steht. Denke mal das dort die allgemein verständliche schreibweise steht.

    Für derlei Fragen würde sich mir nicht unbedingt die MSDN als erste Anlaufstelle aufdrängen.
    Ziemlich gut finde ich "The Elements of C++ Style":
    The Elements of C++ Style | ISBN: 0521893089
    Kurz und prägnant (und günstig) wird da "guter Stil" dargestellt, obwohl man auch nicht mit allem einverstanden sein muss.

    Gruß,

    Alexander


Anmelden zum Antworten