📄 dlgtemplate.asm
字号:
include .\head.inc
DlgProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
.data
TitleName db "Dialog Template",0
ButtonName db "Exit",0
FontName db "Times New Roman",0
.const
ID_EXIT equ 1
.data?
hInstance HINSTANCE ?
.code
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke GlobalAlloc,GMEM_FIXED or GMEM_ZEROINIT,1024*4
mov esi,eax
mov edi,eax
mov dword ptr [edi],DS_SETFONT or WS_SYSMENU or WS_OVERLAPPED
mov word ptr [edi+8],1
mov word ptr [edi+10],100
mov word ptr [edi+12],100
mov word ptr [edi+14],140
mov word ptr [edi+16],80
add edi,22
invoke MultiByteToWideChar,CP_ACP,MB_PRECOMPOSED,addr TitleName,-1,edi,Sizeof TitleName
mov eax,sizeof TitleName
shl eax,1
add edi,eax
mov word ptr [edi],10
add edi,2
invoke MultiByteToWideChar,CP_ACP,MB_PRECOMPOSED,addr FontName,-1,edi,sizeof FontName
mov eax,Sizeof FontName
shl eax,1
add edi,eax
add edi,3
shr edi,2
shl edi,2
mov dword ptr [edi],WS_VISIBLE or WS_CHILD or WS_TABSTOP
mov word ptr [edi+8],30
mov word ptr [edi+10],20
mov word ptr [edi+12],70
mov word ptr [edi+14],20
mov word ptr [edi+16],ID_EXIT
mov word ptr [edi+18],0ffffh
mov word ptr [edi+20],0080h
add edi,22
invoke MultiByteToWideChar,CP_ACP,MB_PRECOMPOSED,addr ButtonName,-1,edi,sizeof ButtonName
mov eax,sizeof ButtonName
shl eax,1
add edi,eax
invoke DialogBoxIndirectParam,hInstance,esi,NULL,DlgProc,NULL
invoke GlobalFree,esi
invoke ExitProcess,eax
DlgProc proc hWnd:dword,uMsg:dword,wParam:dword,lParam:dword
.if uMsg==WM_CLOSE
invoke EndDialog,hWnd,NULL
.elseif uMsg==WM_COMMAND
mov eax,wParam
.if ax==ID_EXIT
invoke EndDialog,hWnd,NULL
.endif
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
DlgProc endp
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -