// データ型とデータ構造の定義は、所望のアプリケーションが含まれWINDOWS.Hファイル の#include <windows.hに> する#include <stdlib.h>に含ま する#include <TIME.H> 書式#include < 文字列の.h> #を含む <math.h>の LRESULT CALLBACK WndProcメソッド(HWND、UINT、WPARAM、LPARAM); // ウィンドウ関数の説明 // 初期化ウィンドウクラス次--------- ----------- --- INT WINAPIのWinMain(hInstanceはHINSTANCE、HINSTANCE hPrevInst、lpszCmdLine LPSTR、int型nCmdShow) { HWND HWND; MSGメッセージ; WNDCLASS WNDCLASS; CHAR、lpszClassName [] = " ウィンドウ" ; // ウィンドウクラス名 文字 lpszTitle [] = " My_Windows " ; // ウィンドウのタイトル名 // ウィンドウクラス定義 CS_HREDRAW = wndclass.style | CS_VREDRAW; // ウィンドウタイプデフォルトのタイプされ wndclass.lpfnWndProcは、WndProcメソッドを=; // WndProcメソッドのためのウィンドウハンドラ WNDCLASS。 = cbClsExtra 0 ; // 拡張子を除いたウィンドウクラス wndclass.cbWndExtra = 0 ; // ウィンドウのインスタンスのない拡張 wndclass.hInstance = hInstanceは; // このインスタンスハンドル wndclass.hIcon = LoadIcon(NULL、IDI_APPLICATION); // 最小化ウィンドウアイコンがデフォルトのアイコンであります = LoadCursor wndclass.hCursor(NULL、IDC_ARROW); // カーソル矢印使用ウィンドウ ; wndclass.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH)// ウィンドウの背景が白である wndclass.lpszMenuName = NULLを; // ないメニューウィンドウ wndclass.lpszClassName lpszClassName =; // 「ウィンドウの例」と呼ばれるウィンドウクラス // -----------次のレジスタウィンドウクラス のIF(!RegisterClass(&WNDCLASS))// 登録は、アラームがガオを鳴らす音が失敗した場合 { のMessageBeep(0 ); 戻りFALSE; } //はウィンドウ作成 HWND = のcreateWindow( 、lpszClassNameを、//Windowクラス名 lpszTitle、 // ウィンドウのインスタンスのタイトル名 WS_OVERLAPPEDWINDOW、// ウィンドウスタイル CW_USEDEFAULT、 CW_USEDEFAULT、 // デフォルト値にウィンドウ座標の左上隅 CW_USEDEFAULT、 CW_USEDEFAULT、 // ガオの窓と全体のデフォルト値に NULL、 // このウィンドウは親ウィンドウではありません NULL、 // メインメニューせずにウィンドウ 、hInstanceは // アプリケーションのウィンドウを作成し、現在取り扱い NULL //はこの値を使用していないが ); のShowWindow(HWND、nCmdShow); // 表示窓 UpdateWindow(HWND); //は、ユーザ領域を描き ながら(のGetMessage(&メッセージ、NULL、0、0))// メッセージループ { TranslateMessage( &MSG); DispatchMessageを(&MSG); } 戻り msg.wParamを; // システムにプログラム終了情報バック } // ウィンドウ関数 LRESULT CALLBACK WndProcメソッド(HWNDのhWnd、UINTメッセージ、WPARAM wParamに、LPARAM lParamに) { HDCのhDC; RECT RECT。 PAINTSTRUCT Psと; TEXTMETRIC TM; HFONTのHF; SIZE Szを; COLORREF色[ 7 ] = {RGB(255、0、0)、RGB(255、165、0)、RGB(255、255、0)、RGB(0、255、0)、RGB(0、255、255)、RGB(0、0、255)、RGB(139、0、255 )}。 静的な INT のx =0、Y = 0 、I。 静的 int型 nchar型= 0 ; 静的 int型 njump = 1 ; int型温度; 静的な ブール値 isLeft = falseを、isRight = 真、isDec = falseを、isInc = 真、isLean = 偽; チャー textbuf [] = " ABCDEFGHIJKLMNOPQRSTUVWXYZ " 。 INT SLEN = STRLEN(textbuf)。 スイッチ(メッセージ) { ケース WM_CREATE: // 確立タイマーは、メッセージはWM_TIMER 0.3秒ごとに送信される のSetTimer(hWndを、1、300 ;、NULL) にsrand(タイム(NULL)); の戻り 0 ; ケース:WM_PAINT のhDC = BeginPaint関数(hWndを、&Psとの); / / 描画処理メッセージ GetClientRect(hWndは、&RECTを); //は、デバイスの環境変数を取得 HFはのcreateFont(= //は、カスタムを作成フォント RAND()%500 + 100、// のフォントの高さ 0、 // アスペクト比に応じてシステムを幅フォントの最適値を選択 0、 //レベルを示す0のテキスト傾き、 0、 // 0のフォント傾き FW_NORMAL、 // 粗フォントは、FW_HEAVYが最も厚くされていない 0、 // 非イタリック 0、 // ない下線 0、 // ない取り消し ANSI_CHARSET、 // 使用される文字を表しますANSI_CHARSETにセット OUT_DEFAULT_PRECIS、// 出力精度デフォルトの精度 CLIP_DEFAULT_PRECIS、 // カット精度がデフォルトの精度で DEFAULT_QUALITY、 // 出力品質がされているデフォルト値の DEFAULT_PITCH | FF_DONTCAREは、 // 単語間隔およびフォントファミリは、デフォルトを使用 」に厚いですワード体"); // DeleteObjectの(HF)。フォント名 SETTEXTCOLOR(HDC、RGB(RAND() %256、RAND()%256、RAND()%256 )); SelectObject(HDC、HF); // バインドフォント GetTextMetrics(HDC、&商標); // 取得フォント情報 // (&SzのののhDC、textbuf、strlenを(textbuf))GetTextExtentPoint32; Y = tm.tmExternalLeading *(RAND()%14 ); X = RAND()%(rect.right - tm.tmAveCharWidth); TEMP = RAND()%26である; のTextOut(HDC、X、Y、&textbuf [TEMP]、1。); EndPaintの(hWndは、& ;のPS) の戻り 0 ; ケース:WM_TIMER InvalidateRect(hWndは、NULL、1。); の戻り 0 ; ケースWM_DESTROY: PostQuitMessage(0); //は、PostQuitMessage WM_QUITメッセージを呼び出しますが送信され 、戻り 0 ; デフォルト: 戻る、(hWndををDefWindowProc関数をメッセージ、wParamに、lParamに); // システムのデフォルトのメッセージ・ハンドラ・デフォルトを使用します } }