// タイミングを計算するための変数
DWORD tim,tim_begin;
DWORD n;
// アイドリング制御用変数
MSG msg;
// サンプル用
HDC dc;
RECT rect = {0,0,640,480};
HBRUSH brush = NULL;
#define TIMEOUT 1000 // 実行時間
tim_begin = timeGetTime(); // 開始時間
do{
if((tim = timeGetTime() - tim_begin) >= TIMEOUT)tim = TIMEOUT;
// 以下の計算式は、0〜255の値をnに格納します
n = 255 * tim / TIMEOUT;
// ここで、nの値を使って処理を書きます
// 以下はウィンドゥを黒から白に変化させるサンプルです
brush = CreateSolidBrush(RGB(n,n,n));
dc = GetDC(hwnd);
FillRect(dc,&rect,brush);
ReleaseDC(hwnd,dc);
DeleteObject(brush);
// アイドリング制御(処理中に他の操作を有効にしたいときは以下を追加します)
if(PeekMessage(&msg,NULL,0,0,PM_REMOVE)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
if(!IsWindow(hwnd))break; // ウィンドゥが破棄された場合を考慮する
}while(tim < TIMEOUT);