📄 mainmodelessdialog.asm
字号:
include .\head.inc
WinMain PROTO :DWORD,:DWORD,:DWORD,:DWORD
.const
IDR_MODELESSDIALOG equ 101
IDR_MENUDIALOG equ 102
IDC_MODELESSEDIT equ 1001
IDC_MODELESSCHECK equ 1002
IDC_MODELESSBUTTON equ 1003
IDM_TEXT equ 40001
IDM_EXITDIALOG equ 40002
.data
ClassName db "WinClass",0
TitleName db "对话框测试",0
Prompt db "对话框主窗口",0
.data?
hInstance HINSTANCE ?
.code
start:
invoke GetModuleHandle, NULL
mov hInstance,eax
invoke WinMain, NULL,NULL,NULL, SW_SHOWDEFAULT
invoke ExitProcess,eax
WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD
LOCAL wc:WNDCLASSEX
LOCAL msg:MSG
LOCAL hModelessDialog:HWND
mov wc.cbSize,SIZEOF WNDCLASSEX
mov wc.style, CS_HREDRAW or CS_VREDRAW or CS_DBLCLKS
mov wc.lpfnWndProc, OFFSET WndProc
mov wc.cbClsExtra,NULL
mov wc.cbWndExtra,DLGWINDOWEXTRA
mov eax, hInstance
mov wc.hInstance,eax
mov wc.hbrBackground,COLOR_BTNSHADOW
mov wc.lpszMenuName,NULL;IDR_MENUDIALOG
mov wc.lpszClassName,OFFSET ClassName
invoke LoadIcon,NULL,IDI_WINLOGO
mov wc.hIcon,eax
mov wc.hIconSm,0
invoke LoadCursor,NULL,IDC_HAND
mov wc.hCursor,eax
invoke RegisterClassEx, addr wc
invoke CreateDialogParam,hInstance,IDR_MODELESSDIALOG,NULL,NULL,NULL
mov hModelessDialog,eax
invoke ShowWindow,hModelessDialog,CmdShow
invoke UpdateWindow,hModelessDialog
invoke GetDlgItem,hModelessDialog,IDC_MODELESSEDIT
invoke SetFocus,eax
.while TRUE
invoke GetMessage, addr msg,NULL,0,0
.BREAK .IF (!eax)
invoke IsDialogMessage,hModelessDialog,addr msg
.if !eax
invoke TranslateMessage,addr msg
invoke DispatchMessage, addr msg
.endif
.endw
mov eax,msg.wParam
ret
WinMain endp
WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.if uMsg==WM_DESTROY
invoke PostQuitMessage,NULL
.elseif uMsg==WM_COMMAND
mov eax,wParam
.if lParam==NULL
.if ax==IDM_TEXT
invoke MessageBox,hWnd,addr Prompt,addr TitleName,MB_OK
.elseif ax==IDM_EXITDIALOG
invoke DestroyWindow,hWnd
.endif
.endif
.else
invoke DefWindowProc,hWnd,uMsg,wParam,lParam
ret
.endif
xor eax,eax
ret
WndProc endp
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -