⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 02.窗体.asm

📁 汇编的实验:熟悉汇编语言程序调试环境及顺序程序设计
💻 ASM
字号:

include windows.inc

.data
	wc		WNDCLASS  	;窗体风格
	hInstance dd		;程序实例句柄
	msg		MSG			;Windows的消息结构
	
.code
Start:
	;取得程序的实例句柄
	invoke GetModuleHandle, NULL
	mov hInstance, eax
	
	;注册一个窗口类
	mov wc.style, 0
	mov wc.lpfnWndProc, offset WindowProc
	mov wc.cbClsExtra, 0
	mov wc.cbWndExtra, 0
	mov eax, hInstance
	mov wc.hInstance, eax
	invoke LoadIcon, NULL, IDI_WARNING ;使用感叹号图标
	mov wc.hIcon, eax
	invoke LoadCursor, NULL, IDC_CROSS ;使用十字形光标
	mov wc.hCursor, eax
	invoke GetStockObject, WHITE_BRUSH ;使用白色背景
	mov wc.hbrBackground, eax
	mov wc.lpszMenuName, 0
	mov wc.lpszClassName, "MyCls"
	invoke RegisterClass, offset wc
	
	;创建一个窗体实例
	invoke CreateWindowEx, 0, "MyCls", "演示窗体", \
						WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, \
						CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, 0
	invoke ShowWindow, eax, SW_SHOW ;将刚才创建的窗体显示出来
	
	;进入消息循环
	invoke GetMessage, offset msg, NULL, 0, 0
	while eax
		invoke TranslateMessage, offset msg
		invoke DispatchMessage, offset msg
		invoke GetMessage, offset msg, NULL, 0, 0		
	endw
	
	invoke ExitProcess,0 ;退出程序

;-----------------------------------------------------------------
;窗口函数
WindowProc proc stdcall hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
	
	local ps:PAINTSTRUCT ;定义局部变量
	local rect:RECT
	
	if uMsg = WM_PAINT ;当窗体刷新时在窗体中央显示文字
		invoke GetClientRect, hWnd, addr rect
		sar rect.right, 1
		sar rect.bottom, 1
		invoke BeginPaint, hWnd, addr ps
		invoke SetTextAlign, ps.hdc, TA_CENTER
		invoke TextOut, ps.hdc, rect.right, rect.bottom, "欢迎使用辰灿汇编语言开发环境", 28
		invoke EndPaint, hWnd, addr ps
		return 0 ;返回函数一定要使用return语句,而不能使用ret指令,否则局部变量没有退栈,会出现堆栈混乱
	elseif uMsg == WM_CLOSE
		invoke PostQuitMessage, 0
		return 0
	elseif uMsg == WM_SIZE
		invoke RedrawWindow, hWnd, NULL, NULL, RDW_ERASENOW|RDW_INVALIDATE
	else
		invoke DefWindowProc, hWnd, uMsg, wParam, lParam
	endif
endp
;-----------------------------------------------------------------

end Start

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -