[C++ Winforms] Messagebox Buttons abfragen

eternitysoft

Mitglied
Ja also ich habe folgendes Problem. Ich habe in einer C++ Winforms Anwendung eine Messagebox mit 2 Buttons.
Code:
MessageBox::Show("Text.","Title",MessageBoxButtons::YesNo);
Mein Problem ist nun ich weiß nicht wie ich abfragen kann welcher Button gedrückt wurde.

Ähm ja das wäre es dann erstmal.

mfg
 
Ich kenne diesen MessageBox befehl nicht, aber in der Regel sagt der Returnwert der Funktion aus, welcher Button gedrückt wurde, musst mal in der MSDN nach schauen, oder wo auch immer die Dokumentation zu diesem Befehl zu finden ist.
 
ich kenne die MessageBox nur so:

int MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType);

Link zur msdn:
http://msdn2.microsoft.com/en-us/library/ms645505(VS.85).aspx

ein Bsp. Prog:

Code:
#include <windows.h>

int main()
{
    int ruck;   //Rückgabewert
    ruck=MessageBox(NULL,"Sie haben WINDOW XP gekauft, möchten sie dies rückgängig machen?","Rückgabe",MB_YESNOCANCEL|MB_ICONQUESTION);
    
    switch(ruck)
    {
        case IDYES:           MessageBox(NULL,"Tja, jetzt ist es zu spät","Antwort JA",MB_OK); //bei Ja
                              break;
                              
        case IDNO:            MessageBox(NULL,"Selber Schuld, viel Spaß noch :)","Antwort NEIN",MB_OK); //Bei Nein
                              break;
                              
        case IDCANCEL:        MessageBox(NULL,"OK, Ihr System bricht nun ab ;)","Antwort ABBRUCH",MB_OK); //Bei Abbruch oder X
    }
}

ich hoffe es hilft
 
hi eternitysoft,

in c# wäre die implementierung so:

Code:
...
DialogResult dr = MessageBox.Show("Hallo Welt\r\nWollen Sie die Applik. abschiessen?", "Frage",  MessageBoxButtons.OK, MessageBoxIcon.Question);
//und nu die auswertung:
if(dr == DialogResult.OK)
    this.Close();
...

in c++ winforms müsste die geschichte genau so aussehen nur das die notation etwas anders ist (zb der ::, statt dem . operator)... ;)

Code:
...
// leider ist die CLI mit C++ etwas krampfig, deswegen muss meist
// der komplette verweis mit angegeben werden System::Windows...

System::Windows::Forms::DialogResult dr = MessageBox::Show("Beenden?", "Frage",  MessageBoxButtons::OKCancel, MessageBoxIcon::Question);

//und nu die auswertung:
if(dr == System::Windows::Forms::DialogResult::OK)
    this->Close();
else
   //mach halt was anderes...
....

ich hoffe das hilft dir etwas weiter... (ansonsten kannst du auch noch default-buttons vergeben und abfragen)...

mfg

greetz, me ;-]
 
Zurück