ラスタースクロールプログラミング その1 の続きです。
10行 ⇒ 9行になりました~♪
#include <windows.h>
#include <math.h>
int WinMain(HINSTANCE i,HINSTANCE,LPSTR,int){WNDCLASS w={67,DefWindowProc,0,0,
i,0,0,0,0,"T"};HDC e,d=GetDC(0);int a=GetSystemMetrics(0),b=GetSystemMetrics(1
),n,f,o=SRCCOPY;RegisterClass(&w);HWND g=CreateWindow("T",0,9<<28,0,0,a,b,0,0,
i,0);MSG m;SelectObject(e=CreateCompatibleDC(d),CreateCompatibleBitmap(d,a,b))
;BitBlt(e,0,0,a,b,d,0,0,o);while(IsWindow(g)){if(PeekMessage(&m,0,0,0,1))
DispatchMessage(&m);for(n=0;n<b;n++)BitBlt(GetDC(g),sin(n*3.0/b)*sin((f++)/
40.0)*60,n,a,1,e,0,n,o);}return 0;}
適当にインデント・改行を入れて、見やすくしたものがこちら↓
#include <windows.h>
#include <math.h>
int WinMain(HINSTANCE i, HINSTANCE, LPSTR, int)
{
WNDCLASS w = { 67, DefWindowProc, 0, 0, i, 0, 0, 0, 0, "T"};
HDC e,d = GetDC(0);
int a = GetSystemMetrics(0),
b = GetSystemMetrics(1),
n,
f,
o=SRCCOPY;
RegisterClass(&w);
HWND g = CreateWindow("T", 0, 9<<28, 0, 0, a, b, 0, 0, i, 0);
MSG m;
SelectObject(
e = CreateCompatibleDC(d),
CreateCompatibleBitmap(d,a,b)
);
BitBlt(e,0,0,a,b,d,0,0,o);
while (IsWindow(g)) {
if (PeekMessage(&m,0,0,0,1))
DispatchMessage(&m);
for (n=0;n<b;n++)
BitBlt(GetDC(g), sin(n*3.0/b) * sin((f++) / 40.0) * 60, n, a, 1, e, 0, n, o);
}
return 0;
}
砂嵐プログラミングその4 のtype2 の内容が元になっています。
前回のラスタースクロールプログラミング その1 の内容も踏まえると、ソースの補足はいらないはずです^^;)
ラスタースクロールプログラミング その3へ続きます。