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

📄 closew.asm

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 ASM
字号:

	include ..\cwlib.inc
	scode

;-------------------------------------------------------------------------
;
;Close a window and update the area underneath it if possible.
;
;On Entry:
;
;EAX	- Pointer to window structure (handle).
;
;On Exit:
;
;nothing.
;
;ALL registers preserved.
;
WinCloseWindow:
	public WinCloseWindow
_WinCloseWindow_ proc syscall
	local @@XCoord:dword, @@YCoord:dword, @@Wide:dword, @@Depth:dword
	pushad
	mov	esi,eax
;
;Let the windows handler know its being closed incase it wants to do something.
;
	mov	eax,WinMess_Close
	call	WinMessageWindow
;
;Find the window in the main list.
;
@@2:	mov	edi,offset WinWindowList
	mov	ecx,MaxWinWindows
@@0:	cmp	[edi],esi
	jz	@@1
	add	edi,4
	loop	@@0
	jmp	@@9
;
;Delete list entry and retrieve coords.
;
@@1:	mov	d[edi],-1		;Remove it from the list.
	mov	eax,Win_XCoord[esi]
	mov	@@XCoord,eax
	mov	eax,Win_YCoord[esi]
	mov	@@YCoord,eax
	mov	eax,Win_Wide[esi]
	mov	@@Wide,eax
	mov	eax,Win_Depth[esi]
	mov	@@Depth,eax
	call	Free		;Release window's memory.
;
;Now we try and re-build what was under this window.
;
	call	CalculateSplits	;calculate splits again.
	mov	ecx,@@XCoord
	mov	edx,@@YCoord
	mov	esi,@@Wide
	mov	edi,@@Depth
	call	WindowRegionUpdate	;Update this area of the display.
;
@@9:	popad
	ret
_WinCloseWindow_ endp


	efile
	end

⌨️ 快捷键说明

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