MessageBoxW-Funktion (winuser.h)
Zeigt ein modales Dialogfeld an, das ein Systemsymbol, eine Reihe von Schaltflächen und eine kurze anwendungsspezifische Meldung enthält, z. B. Status- oder Fehlerinformationen. Das Meldungsfeld gibt einen ganzzahligen Wert zurück, der angibt, auf welche Schaltfläche der Benutzer geklickt hat.
Syntax
int MessageBoxW(
[in, optional] HWND hWnd,
[in, optional] LPCWSTR lpText,
[in, optional] LPCWSTR lpCaption,
[in] UINT uType
);
Parameter
[in, optional] hWnd
Typ: HWND-
Ein Handle für das Besitzerfenster des zu erstellenden Meldungsfelds. Wenn dieser Parameter NULL-ist, weist das Meldungsfeld kein Besitzerfenster auf.
[in, optional] lpText
Typ: LPCTSTR-
Die anzuzeigende Nachricht. Wenn die Zeichenfolge aus mehr als einer Zeile besteht, können Sie die Zeilen mithilfe eines Wagenrücklauf- und/oder Zeilenfeedzeichens zwischen den einzelnen Zeilen trennen.
[in, optional] lpCaption
Typ: LPCTSTR-
Der Titel des Dialogfelds. Wenn dieser Parameter NULL-ist, wird der Standardtitel Error.
[in] uType
Typ: UINT-
Inhalt und Verhalten des Dialogfelds. Dieser Parameter kann eine Kombination aus Flags aus den folgenden Flaggruppen sein.
Um die schaltflächen anzugeben, die im Meldungsfeld angezeigt werden, geben Sie einen der folgenden Werte an.
Wert | Bedeutung |
---|---|
|
Das Meldungsfeld enthält drei Pushschaltflächen: Abbrechen, Wiederholenund Ignorieren. |
|
Das Meldungsfeld enthält drei Pushtasten: Abbrechen, Versuchen Sie es erneut, Weiter. Verwenden Sie diesen Meldungsfeldtyp anstelle von MB_ABORTRETRYIGNORE. |
|
Fügt dem Meldungsfeld eine schaltfläche Hilfe- hinzu. Wenn der Benutzer auf die Schaltfläche Hilfe klickt oder F1 drückt, sendet das System eine WM_HELP Nachricht an den Besitzer. |
|
Das Meldungsfeld enthält eine Schaltfläche: OK. Dies ist die Standardeinstellung. |
|
Das Meldungsfeld enthält zwei Pushtasten: OK und Abbrechen. |
|
Das Meldungsfeld enthält zwei Pushtasten: Wiederholen und Abbrechen. |
|
Das Meldungsfeld enthält zwei Pushtasten: Ja und Nein. |
|
Das Meldungsfeld enthält drei Pushtasten: Ja, Neinund Abbrechen. |
Um ein Symbol im Meldungsfeld anzuzeigen, geben Sie einen der folgenden Werte an.
Um die Standardschaltfläche anzugeben, geben Sie einen der folgenden Werte an.
Geben Sie einen der folgenden Werte an, um die Modalität des Dialogfelds anzugeben.
Verwenden Sie einen oder mehrere der folgenden Werte, um weitere Optionen anzugeben.
Wert | Bedeutung |
---|---|
|
Identisch mit dem Desktop der interaktiven Fensterstation. Weitere Informationen finden Sie unter Fensterstationen.
Wenn der aktuelle Eingabedesktop nicht der Standarddesktop ist, wird MessageBox- erst zurückgegeben, wenn der Benutzer zum Standarddesktop wechselt. |
|
Der Text ist rechtsbündig. |
|
Zeigt Nachrichten- und Beschriftungstext mit Leserichtung von rechts nach links auf hebräischen und arabischen Systemen an. |
|
Das Meldungsfeld wird zum Vordergrundfenster. Intern ruft das System die SetForegroundWindow--Funktion für das Meldungsfeld auf. |
|
Das Meldungsfeld wird mit der WS_EX_TOPMOST Fensterformatvorlage erstellt. |
|
Der Aufrufer ist ein Dienst, der den Benutzer über ein Ereignis benachrichtigt. Die Funktion zeigt ein Meldungsfeld auf dem aktuellen aktiven Desktop an, auch wenn kein Benutzer am Computer angemeldet ist.
Terminaldienste: Wenn der aufrufende Thread über ein Identitätswechseltoken verfügt, leitet die Funktion das Meldungsfeld an die im Identitätswechseltoken angegebene Sitzung weiter. Wenn dieses Flag festgelegt ist, muss der hWnd- Parameter NULL-sein. Dies ist so, dass das Meldungsfeld auf einem anderen Desktop als dem Desktop angezeigt werden kann, der dem hWnd-entspricht. Informationen zu Sicherheitsaspekten bei der Verwendung dieser Kennzeichnung finden Sie unter Interactive Services. Beachten Sie insbesondere, dass diese Kennzeichnung interaktive Inhalte auf einem gesperrten Desktop erzeugen kann und daher nur für einen sehr begrenzten Satz von Szenarien verwendet werden sollte, z. B. Ressourcenausschöpfung. |
Rückgabewert
Typ: int
Wenn ein Meldungsfeld über eine schaltfläche Abbrechen verfügt, gibt die Funktion den wert IDCANCEL zurück, wenn entweder die ESC-Taste gedrückt wird oder die Schaltfläche Abbrechen ausgewählt ist. Wenn das Meldungsfeld keine schaltfläche Abbrechen hat, wirkt sich das Drücken von ESC nicht aus – es sei denn, es ist eine schaltfläche MB_OK vorhanden. Wenn eine schaltfläche MB_OK angezeigt wird und der Benutzer ESC drückt, wird der Rückgabewert IDOK-.
Wenn die Funktion fehlschlägt, ist der Rückgabewert null. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.
Wenn die Funktion erfolgreich ist, ist der Rückgabewert einer der folgenden Menüelementwerte.
Zurückgeben von Code/Wert | Beschreibung |
---|---|
|
Die Schaltfläche Abbrechen wurde ausgewählt. |
|
Die Schaltfläche Abbrechen wurde ausgewählt. |
|
Die Schaltfläche "Weiter" wurde ausgewählt. |
|
Die Schaltfläche Ignorieren wurde ausgewählt. |
|
Die Schaltfläche "Nein" wurde ausgewählt. |
|
Die Schaltfläche OK wurde ausgewählt. |
|
Die Schaltfläche wiederholen wurde ausgewählt. |
|
Die Schaltfläche erneut versuchen wurde ausgewählt. |
|
Die Schaltfläche Ja wurde ausgewählt. |
Bemerkungen
Die folgenden Systemsymbole können in einem Meldungsfeld verwendet werden, indem sie den parameter uType auf den entsprechenden Flagwert festlegen.
Ikone | Flagwerte |
---|---|
MB_ICONHAND, MB_ICONSTOPoder MB_ICONERROR | |
MB_ICONQUESTION | |
MB_ICONEXCLAMATION oder MB_ICONWARNING | |
MB_ICONASTERISK oder MB_ICONINFORMATION |
Das Hinzufügen von zwei Rechts-nach-Links-Markierungen (RLMs), dargestellt durch Unicode-Formatierungszeichen U+200F, wird am Anfang einer MessageBox-Anzeigezeichenfolge vom MessageBox-Renderingmodul interpretiert, sodass die Lesereihenfolge des MessageBox-Steuerelements von rechts nach links (RTL) gerendert wird.
Wenn Sie ein systemmodales Meldungsfeld verwenden, um anzugeben, dass das System nicht genügend Arbeitsspeicher hat, sollten die Zeichenfolgen, auf die durch die lpText- verwiesen wird, und lpCaption Parameter nicht aus einer Ressourcendatei entnommen werden, da ein Versuch zum Laden der Ressource fehlschlägt.
Wenn Sie ein Meldungsfeld erstellen, während ein Dialogfeld vorhanden ist, verwenden Sie ein Handle für das Dialogfeld als hWnd Parameter. Der hWnd Parameter sollte kein untergeordnetes Fenster identifizieren, z. B. ein Steuerelement in einem Dialogfeld.
Beispiele
Im folgenden Beispiel zeigt die Anwendung ein Meldungsfeld an, das den Benutzer nach dem Auftreten einer Fehlerbedingung zur Eingabe einer Aktion auffordert. Das Meldungsfeld zeigt die Meldung an, die die Fehlerbedingung beschreibt und wie sie behoben werden kann. Die MB_CANCELTRYCONTINUE Formatvorlage leitet MessageBox- an, um drei Schaltflächen bereitzustellen, mit denen der Benutzer auswählen kann, wie fortzufahren. Die MB_DEFBUTTON2 Formatvorlage legt den Standardfokus auf die zweite Schaltfläche des Meldungsfelds fest, in diesem Fall die Schaltfläche Versuchen Sie es erneut.
int DisplayResourceNAMessageBox()
{
int msgboxID = MessageBox(
NULL,
(LPCWSTR)L"Resource not available\nDo you want to try again?",
(LPCWSTR)L"Account Details",
MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2
);
switch (msgboxID)
{
case IDCANCEL:
// TODO: add code
break;
case IDTRYAGAIN:
// TODO: add code
break;
case IDCONTINUE:
// TODO: add code
break;
}
return msgboxID;
}
Die folgende Abbildung zeigt die Ausgabe aus dem vorherigen Codebeispiel:
Ein weiteres Meldungsfeldbeispiel finden Sie unter Anzeigen eines Meldungsfelds.
Anmerkung
Der winuser.h-Header definiert MessageBox als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 2000 Professional [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | winuser.h (enthalten Windows.h) |
Library | User32.lib |
DLL- | User32.dll |
API-Satz | ext-ms-win-ntuser-dialogbox-l1-1-0 (eingeführt in Windows 8) |
Siehe auch
Konzeptionelle
andere Ressourcen
Referenz-