home *** CD-ROM | disk | FTP | other *** search
- ; #########################################################################
-
- .386
- .model flat, stdcall
- option casemap :none ; case sensitive
-
- ; #########################################################################
-
- include \masm32\include\windows.inc
- include \masm32\include\user32.inc
- include \masm32\include\kernel32.inc
- include \masm32\include\gdi32.inc
- include \masm32\include\masm32.inc
-
- includelib \masm32\lib\user32.lib
- includelib \masm32\lib\kernel32.lib
- includelib \masm32\lib\gdi32.lib
- includelib \masm32\lib\masm32.lib
-
- ; #########################################################################
-
- ;=============
- ; Local macros
- ;=============
-
- szText MACRO Name, Text:VARARG
- LOCAL lbl
- jmp lbl
- Name db Text,0
- lbl:
- ENDM
-
- ;=================
- ; Local prototypes
- ;=================
- WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
-
- .data
- hEdit1 dd 0
- hEdit2 dd 0
- hEdit3 dd 0
- hEdit4 dd 0
- hButn1 dd 0
- hButn2 dd 0
- hInstance dd 0
- hIconImage dd 0
- hIcon dd 0
- dlgname db "TESTWIN",0
-
- ; #########################################################################
-
- .code
-
- start:
-
- invoke GetModuleHandle, NULL
- mov hInstance, eax
-
- ; -------------------------------------------
- ; Call the dialog box stored in resource file
- ; -------------------------------------------
- invoke DialogBoxParam,hInstance,ADDR dlgname,0,ADDR WndProc,0
-
- invoke ExitProcess,eax
-
- ; #########################################################################
-
- WndProc proc hWin :DWORD,
- uMsg :DWORD,
- wParam :DWORD,
- lParam :DWORD
-
- LOCAL Ps :PAINTSTRUCT
-
- .if uMsg == WM_INITDIALOG
-
- szText dlgTitle," Demo dialog box"
- invoke SendMessage,hWin,WM_SETTEXT,0,ADDR dlgTitle
-
- invoke LoadIcon,hInstance,200
- mov hIcon, eax
-
- invoke SendMessage,hWin,WM_SETICON,1,hIcon
-
- invoke GetDlgItem,hWin,100
- mov hEdit1, eax
-
- invoke GetDlgItem,hWin,101
- mov hEdit2, eax
-
- invoke GetDlgItem,hWin,102
- mov hEdit3, eax
-
- invoke GetDlgItem,hWin,103
- mov hEdit4, eax
-
- invoke GetDlgItem,hWin,1000
- mov hButn1, eax
-
- invoke GetDlgItem,hWin,1001
- mov hButn2, eax
-
- xor eax, eax
- ret
-
- .elseif uMsg == WM_COMMAND
- .if wParam == 1000
- szText calcMsg,"Calculate Button"
- invoke MessageBox,hWin,ADDR calcMsg,
- ADDR dlgTitle,MB_OK
- .elseif wParam == 1001
- szText clearMsg,"Clear Button"
- invoke MessageBox,hWin,ADDR clearMsg,
- ADDR dlgTitle,MB_OK
- .endif
-
- .elseif uMsg == WM_CLOSE
- invoke EndDialog,hWin,0
-
- .elseif uMsg == WM_PAINT
- invoke BeginPaint,hWin,ADDR Ps
- ; ----------------------------------------
- ; The following function are in MASM32.LIB
- ; ----------------------------------------
- invoke FrameGrp,hButn1,hButn2,6,1,0
- invoke FrameGrp,hEdit1,hEdit3,4,1,0
- invoke FrameCtrl,hEdit4,4,1,0
- invoke FrameWindow,hWin,0,1,1
- invoke FrameWindow,hWin,1,1,0
-
- invoke EndPaint,hWin,ADDR Ps
- xor eax, eax
- ret
-
- .endif
-
- xor eax, eax ; this must be here in NT4
- ret
-
- WndProc endp
-
- ; ########################################################################
-
- end start
-