;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; FileName: AninWin.asm
; Author: Purple Endurer
; Functiion: Demo the way to use AnimateWindow()
; DevEnv: Win XP SP2 + MASM32 v7
; log
; ------------------------------
; 2008-09-18 Created!
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
.586
.model flat, stdcall
option casemap:none
;------------------
incboth macro incl
include d:/masm32/include/incl.inc
includelib d:/masm32/lib/incl.lib
endm
include d:/masm32/include/windows.inc
incboth kernel32
incboth user32
incboth gdi32
incboth comctl32
incboth shell32
; prototypes
DlgProc PROTO :HWND, :UINT, :WPARAM, :LPARAM
; .const
IDD_dlgSetState equ 1000
.data
g_szAnimWin db "AnimateWindow", 0
g_szUser32Dll db "user32.dll", 0
.data?
hInstance HINSTANCE ?
pAnimateWindow DD ?
.code
start:
invoke GetModuleHandle, NULL
mov [hInstance], eax
invoke DialogBoxParam, [hInstance], IDD_dlgSetState, NULL, OFFSET DlgProc, NULL
invoke ExitProcess, NULL
invoke InitCommonControls
DlgProc proc hWnd:HWND, wMsg:UINT, lParam:LPARAM, wParam:WPARAM
.if wMsg == WM_INITDIALOG
;--- 获取AnimateWindow()地址
invoke SendMessage, [hWnd], WM_SETTEXT, NULL, OFFSET g_szAnimWin
invoke GetModuleHandle, OFFSET g_szUser32Dll
invoke GetProcAddress, eax, OFFSET g_szAnimWin
mov [pAnimateWindow], eax
;--- 如果取得地址,则渐入显示对话框窗口
.if [pAnimateWindow]
push AW_BLEND + AW_ACTIVATE
push 400h ; time
push [hWnd] ; window Handle
call [pAnimateWindow]
.endif
invoke InvalidateRect, hWnd, 0, TRUE
.elseif wMsg == WM_CLOSE
;--- 如果取得地址,则渐出关闭对话框窗口
.if [pAnimateWindow]
push AW_BLEND + AW_HIDE
push 400h
push [hWnd]
call [pAnimateWindow]
.endif
invoke EndDialog, [hWnd], NULL
.else
mov eax, FALSE
ret
.endif
xor eax, eax
ret
DlgProc endp
end
;;;;;;;;;;;
;rsrc.rc
;;;;;;;;;;;
#include "/masm32/include/resource.h"
#define IDC_lblAppInfo 3009
#define IDD_dlgSetState 1000
IDD_dlgSetState DIALOG 10, 10, 120, 114
STYLE 0x0004 | DS_CENTER | WS_CAPTION | DS_SYSMODAL | WS_SYSMENU | WS_VISIBLE | WS_OVERLAPPED | DS_MODALFRAME | DS_3DLOOK
CAPTION "Get Color"
FONT 9, "宋体"
{
LTEXT "purpleendurer@163.com/n2004.04.02 广西河池/n开发环境:MASM32 V8", IDC_lblAppInfo, 0, 75, 105, 30, WS_DISABLED + SS_CENTER
}