dzięki wielkie działa, ale z innego problemu zrobił się albo sam zrobiłem następny, otóż mam dwa pola tekstowe i chce wpisać tam liczby i po kliknieciu je dodać, ale niestety wynik dodawania jest zły. jak mam zmienne na poczatku zadeklarowane to działa, ale jak wpisze swoje liczby to już źle liczy, czy może być tak, że zamiast wyniku podaje mi kod ascii??
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.data
Klasa db "klasa",0
Tytul db "Program Pudziana",0
classButton db "BUTTON",0
Button2Text db "Wynik",0
Button3Text db "Wpisz",0
Button4Text db "Wyjdź",0
classEdit db "EDIT",0
TekstPrzykladowy db "Pudzian",0
mem2 dword 4
mem1 dword 5
szDecFrmt DB "%0d", 0
szBuf DB 8 dup (0)
.data?
hInstance HINSTANCE ?
hEdit dd ?
wynik dword ?
hButton2 dd ?
hButton3 dd ?
hButton4 dd ?
BuforNaText dword ?
BuforNaText1 dword ?
.const
EditID equ 2
Edit1ID equ 6
Button2ID equ 3
Button3ID equ 4
Button4ID equ 5
.code
....
invoke CreateWindowEx,WS_EX_OVERLAPPEDWINDOW,ADDR classEdit,0,\
WS_CHILD or WS_VISIBLE or WS_BORDER or ES_LEFT or\
ES_AUTOHSCROLL,50,5,200,25,hWnd,EditID,hInstance,0
mov hEdit,eax
invoke CreateWindowEx,WS_EX_OVERLAPPEDWINDOW,ADDR classEdit,0,\
WS_CHILD or WS_VISIBLE or WS_BORDER or ES_LEFT or\
ES_AUTOHSCROLL,50,35,200,25,hWnd,Edit1ID,hInstance,0
mov hEdit,eax
invoke CreateWindowEx,0,ADDR classButton,ADDR Button2Text,\
WS_CHILD or WS_VISIBLE,75,70,140,25,hWnd,Button2ID,hInstance,0
mov hButton2,eax
invoke CreateWindowEx,0,ADDR classButton,ADDR Button4Text,\
WS_CHILD or WS_VISIBLE,75,100,140,25,hWnd,Button4ID,hInstance,0
mov hButton4,eax
.......
.ELSEIF ax==Button2ID
invoke GetDlgItemText,hWnd,EditID,addr BuforNaText,512
invoke GetDlgItemText,hWnd,Edit1ID,addr BuforNaText1,512
mov eax,BuforNaText
mov ebx,BuforNaText1
mul ebx
mov wynik,eax
INVOKE wsprintf, ADDR szBuf, ADDR szDecFrmt, wynik
invoke MessageBox,hWnd,addr szBuf,addr Tytul,MB_OK or MB_ICONEXCLAMATION
.ENDIF
edit zauwazylem gdy zmiast wynik wpisze buffornatext to wyswietla mi inna liczbe niz podalem, np gdy podaje 1, to wyswietla 49, podaje 2 wyswietla 50, podaje 3 wyswietla 51 itd
INVOKE wsprintf, ADDR szBuf, ADDR szDecFrmt, BuforNaText