Primeiramente precisamos criar nosso projeto, faça como se pede. Criará 3 arquivos: -Base.asm: Local onde você colocará nossos códigos -Base.inc: Local onde será declarado tudo de nosso programa -Base.rc:Local onde mexeremos na interfáce gráfica do nosso form Agora clique em base.** e verá seu form: Agora clique em Base.inc e verá algo mais ou menos assim: include windows.inc
uselib MACRO libname
include libname.inc
includelib libname.lib
ENDM
uselib user32
uselib kernel32
DlgProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
IDC_OK equ 1003;LOCAL DE CONSTANTES
IDC_IDCANCEL equ 1004
.data?
hInstance dd ?;dd can be written as dword
;LOCAL DE VARIAVEIS INDEFINIDAS
e em base.asm
.486
.model flat, stdcall
option casemap :none ; case sensitive
include base.inc
.code
start:
invoke GetModuleHandle, NULL
mov hInstance, eax
invoke DialogBoxParam, hInstance, 101, 0, ADDR DlgProc, 0
invoke ExitProcess, eax
; -----------------------------------------------------------------------
DlgProc proc hWin :DWORD,
uMsg :DWORD,
wParam :DWORD,
lParam :DWORD
.if uMsg == WM_COMMAND
.if wParam == IDC_OK
; -----------------------------------------------------------------------
; TODO
; -----------------------------------------------------------------------
.elseif wParam == IDC_IDCANCEL
invoke EndDialog,hWin,0
.endif
.elseif uMsg == WM_CLOSE
invoke EndDialog,hWin,0
.endif
xor eax,eax
ret
DlgProc endp
end start
Você agora não precisa entender muito do que vamos estar fazendo com essa função principal ai não, mas vou mostrar os principais:
wParam é o local de nossos eventos, lá em cima, vemos que se nosso wParam é IDC_OK ele executará alguma função(To do), o que vamos fazer é:
Ao clicar no botão IDC_OK o programa abrirá uma messagebox com o texto digitado no textbox de cima, com o titulo no de baixo.
Após o wParam == IDC_OK digite
invoke GetDlgItemText, hWin, 1001, offset Buffer, sizeof Buffer;Pegamos o text do textbox com ID 1001 e jogamos para buffer
invoke GetDlgItemText, hWin, 1002, offset Buffer2, sizeof Buffer2;Pegamos o texto do textbox 1002
invoke MessageBox,hWin, offset Buffer, offset Buffer2, MB_OK;Chamamos nossa MessageBox
e adicione na Base.inc isto:
Buffer db 256 dup(?)
Buffer2 db 256 dup(?); são nossos retornos de string da função GetDlgItemText Clique em Make/Go ALL E teremos nosso resultado.