TOP >> マニアックなプログラミング
トリッキーコードネット トリッキーなコード

【7行プログラミング/ショートコーディング】ラスタースクロール その2 (Win32API・C言語)

ラスタースクロールプログラミング その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へ続きます。
トリッキーコードネット の TOPへ HOTNEWS の 総合TOPへ