Escolar Documentos
Profissional Documentos
Cultura Documentos
386
.model flat, stdcall ;Modelo de memria 32 bits
option casemap :none ;Modo case sensitive
include
include
include
;include
;include
windows.inc
kernel32.inc
user32.inc
Comctl32.inc
shell32.inc
includelib
includelib
;includelib
;includelib
kernel32.lib
user32.lib
Comctl32.lib
shell32.lib
DlgProc
PROTO
:HWND,:UINT,:WPARAM,:LPARAM
.const
IDD_MAIN
equ 101
BOTAO_SOBRE
equ 1000
BOTAO_SAIR
equ 1001
BOTAO_SOMAR
equ 1002
BOTAO_SUBTRAIR
equ 1003
BOTAO_MULTIPLICAR equ 1004
BOTAO_DIVIDIR
equ 1005
EDIT_VALOR1
equ 102
EDIT_VALOR2
equ 103
EDIT_RESULTADO equ 107
.data
titulo_sobre
texto_sobre
db "Sobre", 0
db "Programa desenvolvido por Eduardo Andr Konzen", 0
titulo_sair
texto_sair
hInstance
db "Aviso",0
db "Voce deseja mesmo Sair?",0
dd
?
valor1
valor2
resultado
dd 0
dd 0
dd 0
.code
start:
invoke GetModuleHandle,NULL; retorna ponteiro dizendo quem o aplicativo
e salva em um registrador
mov
hInstance,eax
;invoke InitCommonControls
invoke DialogBoxParam,hInstance,IDD_MAIN,NULL,addr DlgProc,NULL; regist
ra no sistema operacional
invoke ExitProcess,0
DlgProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
mov
.IF
eax,uMsg
eax==WM_INITDIALOG
;coisas a fazer na abertura ou inicio do programa
mul ebx
mov resultado, eax
invoke SetDlgItemInt, hWin, EDIT_RESULTADO, eax,
TRUE
.ELSEIF eax==BOTAO_DIVIDIR
INVOKE GetDlgItemInt, hWin, EDIT_VALOR2, NULL, T
RUE
mov valor2, eax
INVOKE GetDlgItemInt, hWin, EDIT_VALOR1, NULL, T
RUE
mov valor1, eax
mov ebx, valor2
div ebx
mov resultado, eax
invoke SetDlgItemInt, hWin, EDIT_RESULTADO, eax,
TRUE
.ENDIF
.ENDIF
.ELSEIF eax==WM_CLOSE
invoke EndDialog,hWin,0
.ELSE
mov
eax,FALSE
ret
.ENDIF
mov
eax,TRUE
ret
DlgProc endp
end start