; edit1.txt
; tab = 4
; =========

format PE GUI 4.0
entry start

include 'win32a.inc'

macro mmsg reg, [msg, handler] {
	cmp  reg,msg
	je   handler
}

section '.data' data readable writeable
; =====================================
wc.modh		dd ?
ed.fh		dd ?
ed.fname	db 'Terminal',0
ed.h		dd ?

section '.code' code readable executable
; ======================================
start:
	invoke	GetModuleHandle,NULL
			mov  [wc.modh],eax
	invoke	DialogBoxParam,eax,30,HWND_DESKTOP,proc_dialog,0
			or   eax,eax
			jz   exit
exit:
	invoke	ExitProcess,0




; < proc_dialog >
; ---------------
proc proc_dialog hwnd,msg,wparam,lparam
			push ebx esi edi
			mov  eax,[msg]
	mmsg	eax,\
			WM_INITDIALOG,wminitdialog,\
			WM_CLOSE,wmclose
			xor  eax,eax
			jmp  finish

wminitdialog:
	invoke	GetDlgItem,[hwnd],31
			mov  [ed.h],eax
	invoke	CreateFont,-16,0,0,0,0,0,0,0,0,0,0,0,0,ed.fname
			mov  [ed.fh],eax
	invoke	SendMessage,[ed.h],WM_SETFONT,eax,1
			jmp  processed

wmclose:
	invoke	EndDialog,[hwnd],1

processed:
			mov  eax,1

finish:
			pop  edi esi ebx
			ret
endp
; ---------------
; < proc_dialog >





	
section '.idata' import data readable
; ===================================
library	kernel32,'KERNEL32.DLL',\
		user32,  'USER32.DLL',\
		gdi32,   'GDI32.DLL'

include	'apia\Kernel32.inc'
include	'apia\User32.inc'
include 'apia\Gdi32.inc'





section '.rsrc' resource data readable
; ====================================

directory	RT_DIALOG,dialogs

resource	dialogs,30,LANG_NEUTRAL,demo

dialog		demo,'Edit Box',70,70,190,60,\
			WS_CAPTION + WS_POPUP + WS_SYSMENU + DS_MODALFRAME
dialogitem	'EDIT','',31,10,20,170,16,WS_VISIBLE + WS_BORDER + WS_TABSTOP
enddialog