Here is a quick example :
#include "Dlgbox.inc"
.data
DlgName db "MyDialog",0
hInstance dd ?
CommandLine dd ?
hCursor dd ?
.code
start:
invoke GetModuleHandle,0
mov [hInstance],eax
invoke DialogBoxParam,[hInstance],ADDR DlgName,0,ADDR DlgProc,0
invoke ExitProcess,eax
DlgProc FRAME hWnd,uMsg,wParam,lParam
cmp d[uMsg],WM_CLOSE
jne >initdlg
invoke EndDialog,[hWnd],0
jmp >true
initdlg:
cmp d[uMsg],WM_INITDIALOG
jne >setcursor
invoke LoadCursor,0,IDC_CROSS
mov [hCursor],eax
jmp >true
setcursor:
cmp d[uMsg],WM_SETCURSOR
jne >false
invoke SetCursor,[hCursor]
jmp >true
false:
xor eax,eax
ret
true:
mov eax,1
ret
ENDF
\goasm\gorc /r rsrc.rc
\goasm\goasm Dlgbox.asm
\goasm\golink Dlgbox.obj kernel32.dll user32.dll
rl.com Dlgbox.exe rsrc.res /a