La boite selection de couleurs
Page 1 sur 1
La boite selection de couleurs
Suivant le même principe que la boite précédente, nous disposons d'une fonction pour choisir une couleur ChooseColorA qui utilise comme paramètre la structure CHOOSECOLOR.
La couleur choisie est récupéré dans le registre RAX sur les 3 octets de poids faibles (voir le codage RGB)
FF0000 représente le bleu 0000FF le rouge et 00FF00 le vert.
La couleur choisie est récupéré dans le registre RAX sur les 3 octets de poids faibles (voir le codage RGB)
FF0000 représente le bleu 0000FF le rouge et 00FF00 le vert.
- Code:
;--choixCouleur.asm programme 64 bits
; Fenêtre de Choix des couleur
%include "../windowsinc64.inc"
;=======================================
; segment des données initialisées
;=======================================
segment .data
szMessFin db 10,13,"Fin du programme.",0
szRetourLigne db 10,13,0
szMessdepassement db "Valeur du choix = %p ",10,13,0
color istruc CHOOSECOLOR
iend
LGCOLOR equ $ - color
;=======================================
; segment des données non initialisées
;=======================================
segment .bss
hMain resq 1
szResult resb 100
acrCustClr resq 16
;=======================================
; segment de code
;=======================================
segment .text
global Main
extern afferreur,affconsoleP,affmessage,saisieClavier
Main:
sub rsp, 8h ; alignement de la pile avant tout appel de procédure
sub rsp,20h
;recup handle de l'instance du programme
mov rcx,NULL
call GetModuleHandleA
mov r9,__LINE__ - 1
cmp eax,NULL
je .erreur
mov [hMain],rax
mov qword[color+CHOOSECOLOR.lStructSize],LGCOLOR ; longueur structure
mov qword[color+CHOOSECOLOR.hwndOwner],NULL ; pas de fenêtre maitre
mov qword[color+CHOOSECOLOR.lpCustColors],acrCustClr ; Couleurs complémentaires personelles
mov qword[color+CHOOSECOLOR.Flags], CC_FULLOPEN ; permet de creer des couleurs complémentaires
mov rcx, color ; passage de la structure
call ChooseColorA ;appel de la fonction.
mov r9,__LINE__ - 1
cmp rax,NULL
je .erreur
;mov ax,[color+CHOOSECOLOR.rgbResult]
;exemple utilisation wsprintfa
mov rcx,szResult
mov rdx,szMessdepassement
mov r8,[color+CHOOSECOLOR.rgbResult] ; couleur choisie
call wsprintfA
mov r9,__LINE__ - 1
cmp eax,NULL
je .erreur
push szResult
call affconsoleP ; affichage dans la console
mov rax,0
jmp .main_fin
.erreur:
call afferreur
mov rax,1
jmp .fin
.main_fin:
push szMessFin
call affconsoleP
call saisieClavier
.fin:
mov rcx,rax ; code retour
call ExitProcess ; fin du programme
Sujets similaires
» La boite selection de polices
» La boite selection de fichier
» La boite message
» Une boite de dialogue personnalisée
» La boite selection de fichier
» La boite message
» Une boite de dialogue personnalisée
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|