Classe: wx.wxMessageDialog().
Cette boîte de dialogue affiche un message, ainsi que des boutons pouvant être choisis parmi Ok, Cancel, Yes ou No. (Ok, Annuler, Oui ou Non).
Sous windows, une icône optionnelle peut être affichée, telle qu'un point d'exclamation ou d'interrogation.
La valeur retournée par nomObjet:ShowModal() indique quel bouton a été pressé.
messageBox = wx.wxMessageDialog ( wxWindow * parent, const wxString & message, = "Ceci est un petit message", const wxString & caption = "Titre de la boîte", long style = wx.wxOK + wx.wxCENTER, const wxPoint & pos = wx.wxDefaultPosition )
parent est la fenêtre qui détient la boite de dialogue.
message est le message à afficher.
caption est le titre de la boîte de dialogue.
style est le style de la boîte de dialogue, qui peut être:
wx.wxOK | Affiche un bouton "Ok". |
wx.wxCANCEL | Affiche un bouton "Cancel". |
wx.wxYES_NO | Affiche un bouton "Yes et NO". |
wx.wxYES_DEFAULT | Sélectionne "YES" par défaut. Utiliser avec wx.wxYES_NO. |
wx.wxNO_DEFAULT | Sélectionne "No" par défaut. Utiliser avec wx.wxYES_NO. |
wx.wxICON_EXCLAMATION | Affiche l'icon "!". |
wx.wxICON_ERROR | Affiche l'icon "Erreur". |
wx.wxICON_HAND | Affiche la même icon que wx.wxICON_ERROR. |
wx.wxICON_QUESTION | Affiche l'icon "?". |
wx.wxICON_INFORMATION | Affiche l'icon "Information". |
wx.wxSTAY_ON_TOP | Sous Windows la boîte de message est affichée sur toutes les autres fenêtres. |
pos est ignoré sous MS Windows.
Vous trouverez ci-dessous, la liste des méthodes implémentées par wxLua 2.8.10.
Destroy()* | Détruit la boîte de dialogue en toute sécurité. |
ShowModal() | Permet de sélectionner les boutons wx.wxID_OK, et wx.wxID_CANCEL. |
* Destroy(): Utilisez cette fonction au lieu de supprimer l'opérateur.
Cadres et boîtes de dialogues ne sont pas détruits immédiatement lorsque cette fonction est appelée - ils sont ajoutés à la liste des fenêtres à supprimer plus tard, lorsque tous les événements de la fenêtre auront été traités.
require("wx") -- inutile si on utilise wxluafreeze.exe -- Création d'une frame et de son panel. local frame = wx.wxFrame(wx.NULL, wx.wxID_ANY, "wxMessageDialog") local panel = wx.wxPanel(frame, -1) -- Centrage de la frame au milieu de l'écran. frame:Centre() ---------------------------------------------------------------- local bouton = wx.wxButton(panel, -1, "MessageBox") local texte = wx.wxStaticText( panel, -1, "Appuyez sur le bouton MessageBox.", wx.wxPoint(110, 25)) function MessageBox(event) texte:SetLabel("Appuyez sur un des trois boutons.") -- Création de la boîte de dialogue. local dialogBox = wx.wxMessageDialog(frame, "Ceci est un petit message.", "wxMessageBox", wx.wxNO_DEFAULT + wx.wxYES_NO + wx.wxCANCEL + wx.wxICON_ERROR) local resultat = dialogBox:ShowModal() dialogBox:Destroy() if (resultat == wx.wxID_YES) then texte:SetLabel("Vous avez appuyé sur Oui.") elseif (resultat == wx.wxID_NO) then texte:SetLabel("Vous avez appuyé sur Non.") elseif (resultat == wx.wxID_CANCEL) then texte:SetLabel("Vous avez appuyé sur Annuler.") end end bouton:Connect(wx.wxEVT_LEFT_DOWN, MessageBox) wx.wxGetApp():SetTopWindow(frame) frame:Show(true) wx.wxGetApp():MainLoop()
Ce qui donne comme résultat.