
AlexMAN
|
Enfin, regarde le code, rien que pour créer les controles, jtrouve ca enorme (c de l'asm mais bon), j'ai pas encore remplacé l'invoke par un call, ca va se faire :
;Creation des controles en faisant une boucle; mov x, 50 mov i, 0 mov esi, offset hwndNum ;mov edi, offset hwndOp ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; prem: invoke dwtoa, i, addr buf INVOKE CreateWindowEx, NULL, ADDR ClassButton, ADDR buf, \ WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON, x, 50, 30, 30, \ hwnd, NULL, hInst, NULL mov [esi], eax add esi, 4 add x, 30 inc i cmp i, 3 jb prem ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; INVOKE CreateWindowEx, NULL, ADDR ClassButton, ADDR Plus, \ WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON, x, 50, 30, 30, \ hwnd, NULL, hInst, NULL ;mov [edi], eax ;add edi, 4
mov x, 50 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; sec: invoke dwtoa, i, addr buf INVOKE CreateWindowEx, NULL, ADDR ClassButton, ADDR buf, \ WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON, x, 80, 30, 30, \ hwnd, NULL, hInst, NULL
mov [esi], eax add esi, 4 add x, 30 inc i cmp i, 6 jb sec ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; INVOKE CreateWindowEx, NULL, ADDR ClassButton, ADDR Moins, \ WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON, x, 80, 30, 30, \ hwnd, NULL, hInst, NULL ;mov [edi], eax ;add edi, 4 mov x, 50 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; trois: invoke dwtoa, i, addr buf INVOKE CreateWindowEx, NULL, ADDR ClassButton, ADDR buf, \ WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON, x, 110, 30, 30, \ hwnd, NULL, hInst, NULL
mov [esi], eax add esi, 4 add x, 30 inc i cmp i, 9 jb trois ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; INVOKE CreateWindowEx, NULL, ADDR ClassButton, ADDR Divi, \ WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON, 140, 110, 30, 30, \ hwnd, NULL, hInst, NULL ;mov [edi], eax ;add edi, 4 mov i, 0 invoke dwtoa, i, addr buf INVOKE CreateWindowEx, NULL, ADDR ClassButton, ADDR buf , \ WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON, 80, 140, 30, 30, \ hwnd, NULL, hInst, NULL
mov [esi], eax
INVOKE CreateWindowEx, NULL, ADDR ClassButton, ADDR Mult, \ WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON, 140, 140, 30, 30, \ hwnd, NULL, hInst, NULL ;mov [edi], eax
Je voulais me servir de edi pour stocker l'adresse de mon 2eme tableau, mais ya erreur, kel registre (otre ke esi) je peu utiliser pour faire ca ?
|