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

📄 filedlg.asm

📁 用汇编写的win32程序一些例子。
💻 ASM
字号:
	.386
	.model flat,STDCALL

include win32.asi           ; some 32-bit constants and structures
include win32.ase
include commdlg.asi

	public OpenFileDialog, SaveFileDialog
	.data
ofnData OPENFILENAME <?>
szFilter db	"Fractal Designer",0,"*.fdz",0
	 db	"Any File",0,"*.*",0,0
szFileName db	260 DUP (?)
szFileTitle db  260 DUP (?)
szDir	db	260 DUP (?)
szDefExt db	"fdz"

	.code
setofndata PROC name : DWORD, data : DWORD, handle : DWORD
	mov	[szFileName],0
	mov	esi,[name]
	or	esi,esi
	jz	noname
	lea	edi,[szFileName]
cllp:
	lodsb
	stosb
	or	al,al
	jnz	cllp

noname:
	
	mov	esi,[data]
	mov	[esi].oflStructSize, size OPENFILENAME
	mov	eax,[handle]
	mov	[esi].ofhwndOwner, eax
	mov	[esi].ofhInstance,0
	mov	[esi].oflpstrFilter,offset szFilter
	mov	[esi].oflpstrCustomFilter,0
	mov	[esi].ofnMaxCustFilter,0
	mov	[esi].ofnFilterIndex,1
	mov	[esi].oflpstrFile,offset szFileName
	mov	[esi].ofnMaxFile,260
	mov	[esi].oflpstrFileTitle,offset szFileTitle
	mov	[esi].ofnMaxFileTitle,260	
	mov	[esi].oflpstrInitialDir,offset szDir
	mov	[esi].ofFlags,OFN_NOCHANGEDIR  + OFN_LONGNAMES + OFN_HIDEREADONLY
	mov	[esi].ofnFileOffset,0
	mov	[esi].ofnFileExtension,0
	mov	[esi].oflpstrDefExt,offset szDefExt
	mov	[esi].oflCustData,0
	mov	[esi].oflpfnHook,0
	mov	[esi].oflpTemplateName,0
	ret

setofndata ENDP

OpenFileDialog	PROC name : DWORD, handle :DWORD
	push	esi
	call setofndata,[name],offset ofnData, [handle]
	or	[esi].ofFlags,OFN_CREATEPROMPT
	call	GetOpenFileName,esi
	pop	esi
	or	eax,eax
	jz	nofd
	lea	eax,[ofnData]
nofd:
	ret
OpenFileDialog  ENDP
SaveFileDialog	PROC name : DWORD, handle :DWORD
	push	esi
	call setofndata,[name],offset ofnData, [handle]
	or	[esi].ofFlags,OFN_OVERWRITEPROMPT
	call	GetSaveFileName,esi
	pop	esi
	or	eax,eax
	jz	nosd
	lea	eax,[ofnData]
nosd:
	ret
SaveFileDialog  ENDP
    	end

⌨️ 快捷键说明

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