📄 filedlgs.asm
字号:
Include e:\masm32\Include\comdlg32.inc
IncludeLib e:\masm32\lib\comdlg32.lib
GetFileName Proto :Dword,:Dword,:Dword
SaveFileName Proto :Dword,:Dword,:Dword
FillBuffer Proto :Dword,:Dword,:Byte
.DATA?
ofn OPENFILENAMEA <>
Align 4
szFileName DB 260 DUP(?)
chFont CHOOSEFONTA <>
lgFont LOGFONTA <>
;chsclr CHOOSECOLORA <>
.CODE
;---------------------------------------------------------------------------------;
GetFileName proc hParent:DWORD,lpTitle:DWORD,lpFilter:DWORD
mov ofn.lStructSize, sizeof OPENFILENAME
m2m ofn.hWndOwner, hParent
m2m ofn.hInstance, hInstance
m2m ofn.lpstrFilter, lpFilter
m2m ofn.lpstrFile, offset szFileName
mov ofn.nMaxFile, sizeof szFileName
m2m ofn.lpstrTitle, lpTitle
mov ofn.Flags, OFN_EXPLORER or OFN_FILEMUSTEXIST or \
OFN_LONGNAMES
invoke GetOpenFileName,ADDR ofn
ret
GetFileName endp
;---------------------------------------------------------------------------------;
GetSvFileNm Macro hParent,lpTitle,lpFilter
mov ofn.lStructSize, sizeof OPENFILENAME
m2m ofn.hWndOwner, hParent
m2m ofn.hInstance, hInstance
m2m ofn.lpstrFilter, lpFilter
m2m ofn.lpstrFile, offset szFileName
mov ofn.nMaxFile, sizeof szFileName
m2m ofn.lpstrTitle, lpTitle
mov ofn.Flags, OFN_EXPLORER or OFN_LONGNAMES
invoke GetSaveFileName,ADDR ofn
ret
EndM
;SaveFileName endp
;---------------------------------------------------------------------------------;
FillBuffer proc lpBuffer:DWORD,lenBuffer:DWORD,TheChar:BYTE
push edi
mov edi, lpBuffer ; address of buffer
mov ecx, lenBuffer ; buffer length
mov al, TheChar ; load al with character
rep stosb ; write character to buffer until ecx = 0
pop edi
ret
FillBuffer endp
;---------------------------------------------------------------------------------;
FontDlg Macro hWnd
mov chFont.lStructSize,Sizeof chFont
m2m chFont.hWndOwner,hWnd
mov chFont.lpLogFont,Offset lgFont
mov chFont.Flags,CF_EFFECTS or CF_BOTH
Invoke ChooseFont,Offset chFont
FontEx lgFont.lfFaceName,Dword Ptr lgFont.lfPitchAndFamily,lgFont.lfHeight,lgFont.lfWidth,lgFont.lfWeight,Dword Ptr lgFont.lfItalic,Dword Ptr lgFont.lfUnderline,Dword Ptr lgFont.lfStrikeOut
InkT chFont.rgbColors
movzx eax,Word Ptr[lgFont.lfHeight]
neg eax
;and eax,0ffffh
add eax,1
mov Word Ptr[lgFont.lfHeight],ax
EndM
;---------------------------------------------------------------------------------;
;ColorDlg Macro
; mov chsclr.lStructSize,Sizeof chsclr
; m2m chsclr.hwndOwner,hwnd
; mov chsclr.Flags,CC_ANYCOLOR
; mov chsclr.lpCustColors,NULL
; mov chsclr.lpfnHook,NULL
; mov chsclr.lpTemplateName,NULL
; Invoke ChooseColor,Offset chsclr
; mov eax,chsclr.rgbResult
; Print 0,200,eax
;EndM
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -