📄 calendar.asm
字号:
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 + -