对对话窗体中的子窗进行设置

这是一个用MASMPlus编写的程序,它创建了一个对话框作为主窗口,并设置了定时器。定时器每隔250毫秒触发一次,更新对话框中的时间显示,展示小时、分钟和秒。当用户点击确定或取消按钮时,对话框关闭并销毁定时器。
摘要由CSDN通过智能技术生成

;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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值