📄 mainmodaldialog.asm
字号:
include .\head.inc
ModalDlgProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
.const
IDR_MODALDIALOG equ 101
IDR_MENUDIALOG equ 102
IDC_MODALBUTTON equ 1000
IDC_MODALEDIT equ 1001
IDM_TEXT equ 40001
IDM_EXITDIALOG equ 40002
.data
Prompt db "对话框主窗口",0
TitleName db "Dialog Test",0
Text db "模式对话框的消息测试!",0
.data?
hInstance HINSTANCE ?
.code
start:
invoke GetModuleHandle, NULL
mov hInstance,eax
invoke DialogBoxParam,NULL,IDR_MODALDIALOG,NULL,addr ModalDlgProc,NULL
invoke ExitProcess,eax
ModalDlgProc proc hWnd:dword,uMsg:dword,wParam:dword,lParam:dword
.if uMsg==WM_INITDIALOG
invoke GetDlgItem,hWnd,IDC_MODALEDIT
invoke SetFocus,eax
mov eax,FALSE
ret
.elseif uMsg==WM_CLOSE
invoke EndDialog,hWnd,NULL
.elseif uMsg==WM_COMMAND
mov eax,wParam
.if !lParam
.if ax==IDM_TEXT
invoke MessageBox,hWnd,addr Prompt,addr TitleName,MB_OK
.elseif ax==IDM_EXITDIALOG
invoke EndDialog,hWnd,NULL
.endif
.else
mov edx,eax
shr edx,16
.if dx==BN_CLICKED
.if ax==IDC_MODALBUTTON
invoke SetDlgItemText,hWnd,IDC_MODALEDIT,addr Text
.endif
.endif
.endif
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
ModalDlgProc endp
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -