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

📄 calendar.asm

📁 这是一个数字图像处理的matlab仿真程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
                    mov Ysize,ecx
                    invoke TopXY,Xsize,sWth
                    mov Xplace,eax
                    invoke TopXY,Ysize,sHth
                    mov Yplace,eax
                    invoke MoveWindow,hWin,Xplace,Yplace,Xsize,Ysize,TRUE 
                    ret 

AnimateOpen endp

; ###############################################################

AnimateClose proc hWin:DWORD

    LOCAL Rct:RECT

;-----------------------------------------------------------
; This is a simple method to animate the closing of a dialog
; box by making the dialog appear to shrink away to nothing.
;-----------------------------------------------------------
                    invoke ShowWindow,hWin,SW_HIDE
                    invoke GetWindowRect,hWin,ADDR Rct
                    mov eax,Rct.left
                    mov ecx,Rct.right
                    sub ecx,eax
                    mov Xsize,ecx
                    mov eax,Rct.top
                    mov ecx,Rct.bottom
                    sub ecx,eax
                    mov Ysize,ecx
                    invoke GetSystemMetrics,SM_CXSCREEN
                    mov sWth,eax
                    invoke TopXY,Xsize,eax
                    mov Xplace,eax
                    invoke GetSystemMetrics,SM_CYSCREEN
                    mov sHth,eax
                    invoke TopXY,Ysize,eax
                    mov Yplace,eax
                    mov counts,MAX_XYSTEPS
                    aniloop:
                    invoke MoveWindow,hWin,Xplace,Yplace,Xsize,Ysize,FALSE 
                    invoke ShowWindow,hWin,SW_SHOWNA
                    invoke Sleep,DELAY_VALUE
                    invoke ShowWindow,hWin,SW_HIDE
                    sub Xsize,X_STEP_SIZE
                    sub Ysize,Y_STEP_SIZE
                    invoke TopXY,Xsize,sWth
                    mov Xplace,eax
                    invoke TopXY,Ysize,sHth
                    mov Yplace,eax
                    dec counts
                    jnz aniloop
                    ret 

AnimateClose endp

; ###############################################################

FadeInOpen proc hWin:DWORD

; ------------------------------------------------------------------------------------
; This function enables changing the opacity and transparency color keys of a layered
; window. To do this to a dialog we first need to set the dialog extended window style
; to a layered window style. This only works with Windows 2000 or Windows XP OS's.
; ------------------------------------------------------------------------------------
                    invoke GetWindowLongA,hWin,GWL_EXSTYLE
                    or eax,WS_EX_LAYERED
                    invoke SetWindowLongA,hWin,GWL_EXSTYLE,eax
                    invoke GetModuleHandleA,ADDR User32
                    invoke GetProcAddress,eax,ADDR SLWA
                    mov pSLWA,eax
                    push LMA_ALPHA
                    push 0 
                    push 0
                    push hWin
                    call pSLWA
                    mov Value,90
                    invoke ShowWindow,hWin,SW_SHOWNA
                    doloop:
                    push LMA_COLORKEY + LMA_ALPHA
                    push Value
                    push Value
                    push hWin
                    call pSLWA
                    invoke Sleep,DELAY_VALUE
                    add Value,15
                    cmp Value,255
                    jne doloop
                    push LMA_ALPHA
                    push 255
                    push 0
                    push hWin
                    call pSLWA
                    ret 

FadeInOpen endp

; ###############################################################

FadeOutClose proc hWin:DWORD

; ------------------------------------------------------------------------------------
; This function enables changing the opacity and transparency color keys of a layered
; window. To do this to a dialog we first need to set the dialog extended window style
; to a layered window style. This only works with Windows 2000 or Windows XP OS's.
; ------------------------------------------------------------------------------------
                    invoke GetWindowLongA,hWin,GWL_EXSTYLE
                    or eax,WS_EX_LAYERED
                    invoke SetWindowLongA,hWin,GWL_EXSTYLE,eax
                    invoke GetModuleHandleA,ADDR User32
                    invoke GetProcAddress,eax,ADDR SLWA
                    mov pSLWA,eax
                    push LMA_ALPHA
                    push 255
                    push 0
                    push hWin
                    call pSLWA
                    mov Value,255
                    doloop:
                    push LMA_COLORKEY + LMA_ALPHA
                    push Value
                    push Value
                    push hWin
                    call pSLWA
                    invoke Sleep,DELAY_VALUE
                    sub Value,15
                    cmp Value,0
                    jne doloop
                    ret

FadeOutClose endp

; ###############################################################

Paint_Goofy_Eyes proc hWin:DWORD

    LOCAL hDC:DWORD
    LOCAL hBmp:DWORD
    LOCAL memDC:DWORD

; -----------------------------------------------------------------
; You could instead of GetDC us GetWindowDC which retrieves the DC
; for the entire window including titlebar, menus, and scroll bars.
; -----------------------------------------------------------------
                    invoke GetDC,hWin
                    mov hDC,eax
                    invoke CreateCompatibleDC,hDC
                    mov memDC,eax
                    .if bitmapflag == 0
                        invoke LoadImage,hInstance,600,IMAGE_BITMAP,0,0,
                                         LR_LOADTRANSPARENT or LR_LOADMAP3DCOLORS
                    .else
                        invoke LoadImage,hInstance,700,IMAGE_BITMAP,0,0,
                                         LR_LOADTRANSPARENT or LR_LOADMAP3DCOLORS
                    .endif
                    mov hBmp,eax
                    invoke SelectObject,memDC,hBmp
                    invoke BitBlt,hDC,20,13,44,21,memDC,0,0,SRCCOPY
                    invoke DeleteObject,hBmp
                    invoke DeleteDC,memDC
                    invoke ReleaseDC,hWin,hDC
                    ret

Paint_Goofy_Eyes endp

; ###############################################################

Paint_Goofy_Title proc hWin:DWORD

    LOCAL hDC:DWORD
    LOCAL hBmp:DWORD
    LOCAL memDC:DWORD

; -----------------------------------------------------------------
; You could instead of GetDC us GetWindowDC which retrieves the DC
; for the entire window including titlebar, menus, and scroll bars.
; -----------------------------------------------------------------
                    invoke GetDC,hWin
                    mov hDC,eax
                    invoke CreateCompatibleDC,hDC
                    mov memDC,eax
                    invoke LoadImage,hInstance,800,IMAGE_BITMAP,0,0,
                                     LR_LOADTRANSPARENT or LR_LOADMAP3DCOLORS
                    mov hBmp,eax
                    invoke SelectObject,memDC,hBmp
                    invoke BitBlt,hDC,65,18,142,13,memDC,0,0,SRCCOPY
                    invoke DeleteObject,hBmp
                    invoke DeleteDC,memDC
                    invoke ReleaseDC,hWin,hDC
                    ret

Paint_Goofy_Title endp

; ###############################################################

TopXY proc wDim:DWORD,sDim:DWORD

                    shr sDim,1 
                    shr wDim,1
                    mov eax,wDim
                    sub sDim,eax
                    mov eax,sDim
                    ret

TopXY endp

; ###############################################################

end start

⌨️ 快捷键说明

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