La boite message
Page 1 sur 1
La boite message
Nous avons déjà vu au début de ce tutoriel, l'affichage d'une boite de message. C'est la plus simple des boites proposées par l'API windows.
Voici un petit programme qui montre les différentes possibilités des boutons et d'icones. Il y a aussi d'autres options signalées dans la documentation sur Internet.
Vous pouvez voir qu'il est possible de gérer les réponses à des questions simples (oui,non,ressayer, cancel, abandon ).
Remarque : si les caractères accentués sont mal affichés, il faut vérifier l'encodage de votre source. Par exemple dans notepad+ la création d'un source n'est pas faite avec l'encodage ANSI mais avec l'encodage UTF8. Il faut donc le modifier par le menu Encodage avant de compiler.
Précision : l'option MB_DEFBUTTON2 permet de définir le bouton 2 comme le bouton par défaut. Nous pouvons la remplacer par MB_DEFBUTTON1 ou MB_DEFBUTTON3
Voici un petit programme qui montre les différentes possibilités des boutons et d'icones. Il y a aussi d'autres options signalées dans la documentation sur Internet.
Vous pouvez voir qu'il est possible de gérer les réponses à des questions simples (oui,non,ressayer, cancel, abandon ).
Remarque : si les caractères accentués sont mal affichés, il faut vérifier l'encodage de votre source. Par exemple dans notepad+ la création d'un source n'est pas faite avec l'encodage ANSI mais avec l'encodage UTF8. Il faut donc le modifier par le menu Encodage avant de compiler.
- Code:
;programme fenetre message windows en 64 bits
;messagebox1.asm
%include "../windowsinc64.inc"
section .data
szTitre: db 'Fenêtre message', 0
szMsg: db 'Voulez-vous continuer ?', 0
szMsgB1 db "Bouton 1",0
szMsgB2 db "Bouton 2",0
szMsgB3 db "Bouton 3",0
section .text
global Main
Main:
sub rsp, 8h ; alignement standard
sub rsp, 20h ; reserve 4 paramètres de 8 octets
mov rcx, 0 ; handle fenêtre
lea rdx,[szMsg] ; adresse du message
lea r8,[szTitre] ; adresse du titre de la fenêtre
mov r9, MB_YESNOCANCEL|MB_ICONWARNING |MB_DEFBUTTON2 ; type du message : OK
call MessageBoxA
cmp rax,IDYES
je .boutonoui
cmp rax,IDNO
je .boutonnon
; bouton cancel
mov rcx, 0 ; handle fenêtre
lea rdx,[szMsgB3] ; adresse du message
lea r8,[szTitre] ; adresse du titre de la fenêtre
mov r9, MB_CANCELTRYCONTINUE|MB_ICONSTOP ; type du message : OK
call MessageBoxA
jmp .fin
.boutonoui:
mov rcx, 0 ; handle fenêtre
lea rdx,[szMsgB1] ; adresse du message
lea r8,[szTitre] ; adresse du titre de la fenêtre
mov r9, MB_ABORTRETRYIGNORE|MB_ICONQUESTION ; type du message : OK
call MessageBoxA
jmp .fin
.boutonnon:
mov rcx, 0 ; handle fenêtre
lea rdx,[szMsgB2] ; adresse du message
lea r8,[szTitre] ; adresse du titre de la fenêtre
mov r9, MB_YESNO|MB_ICONINFORMATION ; type du message : OK
call MessageBoxA
jmp .fin
.fin:
mov rcx,rax ; code retour avec le code retour de MessageBoxA
call ExitProcess ; fonction de fin du programme
Précision : l'option MB_DEFBUTTON2 permet de définir le bouton 2 comme le bouton par défaut. Nous pouvons la remplacer par MB_DEFBUTTON1 ou MB_DEFBUTTON3
Sujets similaires
» Premier programme : affichage d'un message
» La boite selection de couleurs
» La boite selection de polices
» Une boite de dialogue personnalisée
» La boite selection de fichier
» La boite selection de couleurs
» La boite selection de polices
» Une boite de dialogue personnalisée
» La boite selection de fichier
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum