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

📄 filedlgs.asm

📁 一个不错的用汇编语言编写的FFT算法程序
💻 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 + -