📄 fader.c
字号:
/*--------------------------------------
FADER.C -- Palette Animation Demo
(c) Charles Petzold, 1998
--------------------------------------*/
#include <windows.h>
#define ID_TIMER 1
TCHAR szAppName [] = TEXT ("Fader") ;
TCHAR szTitle [] = TEXT ("Fader: Palette Animation Demo") ;
static LOGPALETTE lp ;
HPALETTE CreateRoutine (HWND hwnd)
{
HPALETTE hPalette ;
lp.palVersion = 0x0300 ;
lp.palNumEntries = 1 ;
lp.palPalEntry[0].peRed = 255 ;
lp.palPalEntry[0].peGreen = 255 ;
lp.palPalEntry[0].peBlue = 255 ;
lp.palPalEntry[0].peFlags = PC_RESERVED ;
hPalette = CreatePalette (&lp) ;
SetTimer (hwnd, ID_TIMER, 50, NULL) ;
return hPalette ;
}
void PaintRoutine (HDC hdc, int cxClient, int cyClient)
{
static TCHAR szText [] = TEXT (" Fade In and Out ") ;
int x, y ;
SIZE sizeText ;
SetTextColor (hdc, PALETTEINDEX (0)) ;
GetTextExtentPoint32 (hdc, szText, lstrlen (szText), &sizeText) ;
for (x = 0 ; x < cxClient ; x += sizeText.cx)
for (y = 0 ; y < cyClient ; y += sizeText.cy)
{
TextOut (hdc, x, y, szText, lstrlen (szText)) ;
}
return ;
}
void TimerRoutine (HDC hdc, HPALETTE hPalette)
{
static BOOL bFadeIn = TRUE ;
if (bFadeIn)
{
lp.palPalEntry[0].peRed -= 4 ;
lp.palPalEntry[0].peGreen -= 4 ;
if (lp.palPalEntry[0].peRed == 3)
bFadeIn = FALSE ;
}
else
{
lp.palPalEntry[0].peRed += 4 ;
lp.palPalEntry[0].peGreen += 4 ;
if (lp.palPalEntry[0].peRed == 255)
bFadeIn = TRUE ;
}
AnimatePalette (hPalette, 0, 1, lp.palPalEntry) ;
return ;
}
void DestroyRoutine (HWND hwnd, HPALETTE hPalette)
{
KillTimer (hwnd, ID_TIMER) ;
DeleteObject (hPalette) ;
return ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -