format PE GUI 4.0
entry start
 
include 'WIN32ax.inc'

IDD_DIALOG1	= 101
IDD_DIALOG2	= 102

IDB_BUTTON1	= 201
IDB_BUTTON2	= 202
IDB_BUTTON3	= 203

RICHEDIT1	= 301


 RichEditDLL	db 'riched20.DLL', 0
 RichEditClass	db 'RICHEDIT20A', 0



vv	       dd ?
hRichEditDLL   dd ?
hwndRichEdit   dd ?






;=================================================code=================================================================================
section '.code' code readable executable


;--------------------------------------------------------------------------------------------------------------------------------------
start:
	invoke LoadLibrary, RichEditDLL
	invoke InitCommonControls
	invoke GetModuleHandle,0
	mov    [vv],eax



;--------------------------------------------------------------------------------------------------------------------------------------

	invoke	DialogBoxParam,eax,IDD_DIALOG1,0,DlgDlg1,0
	invoke	ExitProcess,0
	or	eax,eax
	jz	exit

  exit:
	invoke	ExitProcess,0





;-------------------------------------------------------------------------------------------------------------------------------------
proc DlgDlg1 hwnddlg1,msg,wparam,lparam


	push	ebx esi edi

	cmp	[msg],WM_INITDIALOG
	je	.wmcreate
	cmp	[msg],WM_PAINT
	je	.wmpaint
	cmp	[msg],WM_COMMAND
	je	.wmcommand
	cmp	[msg],WM_CLOSE
	je	.wmclose
	xor	eax,eax
	jmp	.finish

 .wmcreate:

	invoke	CreateWindowEx,WS_EX_WINDOWEDGE,"button",'NEXT',WS_CHILD+WS_VISIBLE,297, 151, 202, 77,[hwnddlg1],IDB_BUTTON1,[vv],0

	invoke	CreateWindowEx,WS_EX_WINDOWEDGE,"button",'EXIT',WS_CHILD+WS_VISIBLE,297, 227, 202, 77,[hwnddlg1],IDB_BUTTON2,[vv],0

	ret

 .wmpaint :

	ret

 .wmcommand:
	cmp	[wparam], BN_CLICKED shl 16 + IDB_BUTTON1
	je	.NEXT

	cmp	[wparam], BN_CLICKED shl 16 + IDB_BUTTON2
	je	.wmclose
	mov	eax,1


 .wmclose:
	invoke	EndDialog,[hwnddlg1],0
	ret

 .finish:
	pop	edi esi ebx
	ret

 .NEXT :

	;invoke  EndDialog,[hwnddlg1],0
	invoke	DialogBoxParam,[vv],IDD_DIALOG2,0,DlgDlg2,0
	ret



endp
;----------------------------------------------------------------------------------------------------------------------------------------------------
proc DlgDlg2 hwnddlg2,msg,wparam,lparam



	push	ebx esi edi
	cmp	[msg],WM_INITDIALOG
	je	.wmcreate
	cmp	[msg],WM_COMMAND
	je	.wmcommand
	cmp	[msg],WM_CLOSE
	je	.wmclose
	xor	eax,eax
	jmp	.finish

  .wmcreate:


	invoke	CreateWindowEx,0, RichEditClass,'',  WS_VISIBLE + WS_CHILD + WS_BORDER + WS_TABSTOP+ES_MULTILINE ,0, 245,333, 200,[hwnddlg2],RICHEDIT1,[vv],0

	invoke	CreateWindowEx,WS_EX_WINDOWEDGE,'button','EXIT',WS_CHILD+WS_VISIBLE,495, 575, 202, 77,[hwnddlg2],IDB_BUTTON3,[vv],0

	ret

  .wmcommand:
	cmp	[wparam], BN_CLICKED shl 16 + IDB_BUTTON3
	je	.wmclose
	mov	eax,1

  .wmclose:
	invoke	EndDialog,[hwnddlg2],0
	ret

  .finish:
	pop	edi esi ebx
	ret
 endp

;================================imports=============================================================================================================

section '.idata' import data readable
library kernel32,'KERNEL32.DLL',\
	user32,'USER32.DLL',\
	comctl,'COMCTL32.DLL',\
	shell32,'SHELL32.DLL',\
	gdi32,'GDI32.DLL',\
	comdlg32,'comdlg32.DLL'

include 'api/kernel32.inc'
include 'api/user32.inc'
include 'api/shell32.inc'
include 'api/COMCTL32.inc'
include 'api/gdi32.inc'
include 'api/COMDLG32.inc'
import comctl,\
	 InitCommonControls,'InitCommonControls'






;====================================================================================================================================================
section '.rsrc' resource data readable

directory     RT_DIALOG, dialogs


resource      dialogs,\
	      IDD_DIALOG1, LANG_ENGLISH + SUBLANG_DEFAULT, dialog1,\
	      IDD_DIALOG2, LANG_ENGLISH + SUBLANG_DEFAULT, dialog2


  dialog      dialog1, 'dialog1', 0, 0, 332, 186, DS_CENTER + DS_SETFOREGROUND +WS_CAPTION + WS_VISIBLE + WS_CLIPCHILDREN +WS_OVERLAPPED



  enddialog

  dialog      dialog2, 'dialog2', 0, 0, 600, 400, DS_CENTER + DS_SETFOREGROUND +WS_CAPTION + WS_VISIBLE + WS_CLIPCHILDREN +WS_OVERLAPPED



  enddialog





