2017-10-06 5 views
-1

Ich arbeite mit C++ Builder und möchte mit MessageBox und den Clickables "OK" und "Hilfe" arbeiten. Wenn der Benutzer "Hilfe" drückt, sollte ein neues Formular geöffnet werden. Also hier ist mein Problem:Probleme mit MessageBox und MB_HELP

Während MessageBox und der Befehl mit MB_HELP verwenden, werden die Schaltflächen "OK" und "Hilfe" angezeigt. Aber wenn er Hilfe drückt, tut der Compiler nichts, er macht nur etwas und gibt 1 zurück, wenn ich OK-Taste drücke.

btw. Ich bin mit VCL-Formularanwendung.

Vielen Dank für Ihre Hilfe :)

if (Application->MessageBox("Die maximale Temperatur von 30°Grad darf nicht 
überschritten werden", 
    "Warnung", MB_HELP | MB_ICONEXCLAMATION) == IDOK); 
     { 
      ///setting values/// 
     }   
else Form1->Show(); 
+0

Geben Sie bitte den Code an. – boriaz50

+0

In der Frage. – boriaz50

+0

_ "Aber beim Drücken der Hilfe wird der Compiler nichts tun" _ - Was sollte der Compiler tun, wenn Sie das Programm bereits ausführen? Was erwartest du zu passieren? – sehe

Antwort

0

Ich glaube, ich es bekommen.

Wenn Sie mehrere Bedingungen für das gleiche Ergebnis prüfen möchten, können Sie sie zuerst einer Variablen zuweisen. MessageBox gibt ein int, so:

int choice = Application->MessageBox("Die maximale Temperatur von 30°Grad darf nicht überschritten werden", 
            "Warnung", MB_HELP | MB_ICONEXCLAMATION); 
if (choice == IDOK) { 
    /// setting values/// 
} 
else if (choice == IDHELP) { 
    else Form1->Show(); 
} 

Sie können natürlich eine switch Anweisung verwenden. Wenn Sie Informationen zu diesen Dingen benötigen, lesen Sie bitte The Definitive C++ Book Guide and List

+0

Danke für Ihre Antwort :) vor Minuten komme ich zu der gleichen Lösung und es funktioniert, danke – kevin

+0

Willkommen bei SO. Bitte lesen Sie auch [this] (https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – sehe