;MASMPlus ´úÂëÄ£°å - ÒÔ¶Ô»°¿ò×öΪÖ÷´°¿ÚµÄ³ÌÐò
.386
.Model Flat, StdCall
Option Casemap :None
Include windows.inc
Include user32.inc
Include kernel32.inc
Include gdi32.inc
includelib gdi32.lib
IncludeLib user32.lib
IncludeLib kernel32.lib
include macro.asm
DlgProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
.const
DLG_MAIN equ 100
ID_TIMER1 EQU 1000
.DATA
szFnt BYTE "%d:%d:%d",0
.data?
hInstance dd ?
dwCount dd ?
buffer BYTE 80 dup(0)
sysTime SYSTEMTIME<>
.CODE
START:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke DialogBoxParam,hInstance,DLG_MAIN,0,offset DlgProc,0
invoke ExitProcess,0
DlgProc proc hWnd,uMsg,wParam,lParam
.if uMsg==WM_INITDIALOG
invoke LoadIcon,hInstance,100
invoke SendMessage,hWnd,WM_SETICON,ICON_SMALL,eax
invoke SetTimer,hWnd,ID_TIMER1,250,NULL
mov dwCount,1
.elseif uMsg==WM_COMMAND
mov eax,wParam
and eax,0ffffh
.if eax==IDOK
invoke SendMessage,hWnd,WM_CLOSE,TRUE,0
.elseif eax==IDCANCEL
invoke SendMessage,hWnd,WM_CLOSE,0,0
.endif
.elseif uMsg==WM_TIMER
invoke GetLocalTime,offset sysTime
movzx esi,sysTime.wHour
movzx edi,sysTime.wMinute
movzx edx ,sysTime.wSecond
invoke wsprintf,addr buffer,addr szFnt,esi,edi,edx
invoke GetDlgItem,hWnd,1 ;根据id 取hwnd
invoke SetWindowText,eax,offset buffer
.elseif uMsg==WM_CLOSE
invoke EndDialog,hWnd,wParam
invoke KillTimer,hWnd,ID_TIMER1
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
DlgProc endp
END START