📄 imageprocessreverse.asm
字号:
.686
.xmm
.model flat,stdcall
option casemap:none
include windows.inc
include mymacro.inc
include gdi32.inc
includelib gdi32.lib
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
IDI_ICON1 equ 101
.data?
hInstance dd ?
hWinMain dd ?
include ProcWinMain.asm ;包含进窗口过程文件
.code
WinMain? proc
local @stWndClass:WNDCLASSEX
local @stMsg:MSG
;------------
;取得模块句柄
;------------
invoke GetModuleHandle,NULL
mov hInstance,eax
;--------------------------
;填充窗口类结构,注册窗口类
;--------------------------
invoke RtlZeroMemory,addr @stWndClass,sizeof @stWndClass
invoke LoadCursor,NULL,IDC_ARROW
mov @stWndClass.hCursor,eax
invoke LoadIcon,hInstance,IDI_ICON1
mov @stWndClass.hIcon,eax
m2m @stWndClass.hInstance,hInstance
mov @stWndClass.cbSize,sizeof WNDCLASSEX
mov @stWndClass.style,CS_HREDRAW or CS_VREDRAW
mov @stWndClass.lpfnWndProc,offset ProcWinMain?
mov @stWndClass.hbrBackground,COLOR_WINDOW + 1
mov @stWndClass.lpszClassName,String('MyClass')
invoke RegisterClassEx,addr @stWndClass
;--------------
;创建并更新窗口
;--------------
invoke CreateWindowEx,WS_EX_CLIENTEDGE,String('MyClass'),String('Huffman解码'),\
WS_OVERLAPPEDWINDOW or WS_VSCROLL or WS_HSCROLL,\
100,100,800,600,NULL,NULL,hInstance,NULL
mov hWinMain,eax
invoke ShowWindow,hWinMain,SW_SHOWNORMAL
invoke UpdateWindow,hWinMain
;--------
;消息循环
;--------
.while TRUE
invoke GetMessage,addr @stMsg,NULL,0,0
.break .if eax == 0
invoke TranslateMessage,addr @stMsg
invoke DispatchMessage,addr @stMsg
.endw
ret
WinMain? endp
start: call WinMain?
invoke ExitProcess,NULL
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -