witam. mam problem z programem ktoremu wpisuje dane a on ma je dodac np 2+3 i odjac . trzeba zrobic zeby z podawanego tekstu jakos sobie on przekonwertowal na liczby i dopiero wtedy moze bedzie dzialal. dzieki za pomoc . a oto moj problem :
.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
classEdit db "EDIT",0
Klasa db "klasa",0
Tytul db "kal",0
classButton db "BUTTON",0
Button2Text db "Odczytaj",0
Button4Text db "Wyjdź",0
;classEdit db "EDIT",0
classEdit2 db "EDIT2",0
classEdit3 db "EDIT3",0
.data?
hEdit dd ?
hInstance HINSTANCE ?
;hInstance2 HINSTANCE2 ?
;hEdit dd ?
hEdit2 dd ?
hEdit3 dd ?
hButton2 dd ?
hButton4 dd ?
BuforNaText db 100 dup(?)
.const
;EditID equ 2
Edit2ID equ 22
Edit3ID equ 333
Button2ID equ 3
Button4ID equ 5
.code
start:
invoke GetModuleHandle,0
mov hInstance,eax
call WinMain
invoke ExitProcess,0
WinMain proc
LOCAL wc:WNDCLASSEX
LOCAL msg:MSG
mov wc.cbSize,sizeof WNDCLASSEX
mov wc.style,CS_HREDRAW or CS_VREDRAW
mov wc.lpfnWndProc,offset WndProc
mov wc.cbClsExtra,0
mov wc.cbWndExtra,0
push hInstance
pop wc.hInstance
mov wc.hbrBackground,COLOR_WINDOW+1
mov wc.lpszMenuName,0
mov wc.lpszClassName,offset Klasa
invoke LoadIcon,0,IDI_APPLICATION
mov wc.hIcon,eax
mov wc.hIconSm,eax
invoke LoadCursor,0,IDC_ARROW
mov wc.hCursor,eax
invoke RegisterClassEx,addr wc
invoke CreateWindowEx,0,addr Klasa,addr Tytul,\
WS_OVERLAPPEDWINDOW or WS_VISIBLE,100,100,320,200,0,0,hInstance,0
.WHILE TRUE
invoke GetMessage,addr msg,0,0,0
.BREAK .IF (!eax)
invoke TranslateMessage,addr msg
invoke DispatchMessage,addr msg
.ENDW
ret
WinMain endp
WndProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
.IF uMsg==WM_DESTROY
invoke PostQuitMessage,0
.ELSEIF uMsg==WM_CREAT
invoke CreateWindowEx,WS_EX_CLIENTEDGE,ADDR classEdit,0,
WS_CHILD or WS_VISIBLE or WS_BORDER or ES_LEFT or ES_AUTOHSCROLL,
50,35,40,25,\
hWnd,\
Edit2ID,\
;ID kontrolki wyrażony za pomocą stałej
hInstance,\
0
mov hEdit,eax ;------------------------------- --------------------------
;zapisanie uchwytu utworzonej kontrolki w zmiennej hEdit
;-- 2 pole
invoke CreateWindowEx,WS_EX_CLIENTEDGE,ADDR classEdit,0,
WS_CHILD or WS_VISIBLE or WS_BORDER or ES_LEFT or ES_AUTOHSCROLL,\
150,35,40,25,\
hWnd,\
Edit3ID,\
hInstance,\
0
;nie potrzebne, podajemy 0
mov hEdit2,eax
;zapisanie uchwytu utworzonej kontrolki w zmiennej hEdit
;------^ 2 pole
;--------------------------------------------------------------------------z tym dodawaniem
;add eax,hEdit3
;-------------------
invoke CreateWindowEx,0,ADDR classButton,ADDR Button2Text,\
WS_CHILD or WS_VISIBLE,75,70,140,25,hWnd,Button2ID,hInstance,0
;add hButton2,ebx ;-dodawac chyba tu
mov hButton2,eax
invoke CreateWindowEx,0,ADDR classButton,ADDR Button4Text,\
WS_CHILD or WS_VISIBLE,75,130,140,25,hWnd,Button4ID,hInstance,0
mov hButton4,eax
.ELSEIF uMsg==WM_COMMAND
mov eax,wParam
.IF ax==Button4ID
invoke PostQuitMessage,0
.ELSEIF ax==Button2ID
invoke GetWindowText,hEdit,offset BuforNaText,sizeof BuforNaText-1
invoke MessageBox,hWnd,addr BuforNaText,addr Tytul,MB_OK or MB_ICONEXCLAMATION
;.ELSEIF ax==Button3ID
; invoke SetWindowText,hEdit,offset TekstPrzykladowy
.ENDIF
;-------------------
.ELSE
invoke DefWindowProc,hWnd,uMsg,wParam,lParam
ret
.ENDIF
ret
WndProc endp
end start
program sie kompiluje tylko nie robi tego co chce. tzn wyswietla mi 1 okienko a ja chce zeby zsumowal albo odjal (wzaleznosci co sie wybierze ) wartosci z tych dwoch okienek i wyswietlil je w tym co wyskakuje po wcisnieciu odczytaj. jeszcze jak by ktos podpowiedzial jak dolaczyc do przycisku np suma zeby on sumowal te 2 wartosci . dzieki.