.386 .model flat,stdcall option casemap:none include windows.inc include user32.inc include kernel32.inc includelib user32.lib includelib kernel32.lib DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD .data Message db "Hello World!",0 Caption db "This is the text from the editbox",0 .data? hInstance HINSTANCE ? buffer db 512 dup(?) .const IDD_DLGBOX equ 1001 IDC_EDITBOX equ 1002 IDC_MESSAGE equ 1003 IDC_EXIT equ 1004 IDM_GETTEXT equ 1005 IDM_CLEARTEXT equ 1006 IDM_EXIT equ 1007 ARIcon equ 2000 .code start: invoke GetModuleHandle, NULL mov hInstance,eax invoke DialogBoxParam, hInstance, IDD_DLGBOX, NULL, addr DlgProc, NULL invoke ExitProcess,eax DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM .if uMsg == WM_INITDIALOG invoke LoadIcon,hInstance,ARIcon invoke SendMessage, hWnd, WM_SETICON, 1, eax invoke GetDlgItem, hWnd,IDC_EDITBOX invoke SetFocus,eax .elseif uMsg == WM_COMMAND mov eax,wParam .if eax==IDC_MESSAGE invoke SetDlgItemText,hWnd,IDC_EDITBOX,ADDR Message .elseif eax==IDC_EXIT invoke SendMessage, hWnd, WM_CLOSE, 0, 0 .elseif eax==IDM_GETTEXT invoke GetDlgItemText,hWnd,IDC_EDITBOX,ADDR buffer,512 invoke MessageBox,NULL,ADDR buffer,ADDR Caption,MB_OK .elseif eax==IDM_CLEARTEXT invoke SetDlgItemText,hWnd,IDC_EDITBOX,NULL .elseif eax==IDM_EXIT invoke SendMessage, hWnd, WM_CLOSE, 0, 0 .endif .elseif uMsg == WM_CLOSE invoke EndDialog, hWnd, 0 .endif xor eax,eax ret DlgProc endp end start