C言語の別れシンプルなブラックボックス、WIN32ウィンドウが表示乗算テーブル(純粋なCコード)をしてみましょう

DEVCを使用する手順++ 5.0コンパイラ

書式#include <WINDOWS.H> // コールバック関数....................................... ...................................... 
LRESULT CALLBACK WndProcメソッド(HWNDのHWND、UINT uMsg、wParamにWPARAM 、LPARAM lParamに)
{ 
    HDC HDC; スイッチ(uMsg)                                                           // メッセージセレクタ    {
                                                                           // ここで私は、ボタンを押すメッセージを追加ケースWM_LBUTTONDOWN:
         // メッセージボックス(HWNDを、 "クリック"、)、 "プロンプト" MB_OK。リターン0 ; ケース WM_DESTROY:                                                      // 現在のウィンドウが破棄されたときに





 
    

    
         
         
    
        PostQuitMessage(0);                                               //は、プログラム終了するためにメッセージを送信
        リターン 0 ;                                                         // メッセージを処理した場合、それはWindowsの通知するために0を返す
 
    ケース WM_CLOSE:                                                        //をユーザがウィンドウの閉じるボタンの右上隅をクリックすると 
        (HWND)DestroyWindowを;                                              / / 窓が破壊
        返す 0 ; 
 
    ケース WM_PAINT:                                                        // ウィンドウを再描画する必要があります
        {    
            HDC HDC;      
            RECT RECT。
            PS PAINTSTRUCT = { 0 };                                          // 格納文字列に配列を定義 
            HDC = BeginPaint関数(HWND、&PS);                                   // 再描画開始

            
            
            // のDrawText(HDC、TEXT( "ABCDEFG") - 1、&RECT、DT_CENTERを。)           // 特定の出力(あなたが特定の理由を知らない、表示することはできません)
             // のTextOut(HDC、350300、TEXT( "ABCDEFG")、12);                  // 特定の出力内容
/ * *********** ******************************コアプログラムコード領域**************** ************************************************* * /         
        SETTEXTCOLOR(HDC、RGB(25500));    // 設定されたフォント色
        のint I、サイズ、J、X = 10、Y = 200であり、K;             
        のTextOut(HDC、350100、TEXT(" 乗算テーブル")、10 ); 
        TCHAR szText [ 256 ];                   / / 及びバッファー、szTextの定義   
        のための(I = 1 ; I <= 9 ; I ++ のための(J = 1。 ; J <= I; J ++ ){                               
            サイズ = wsprintf(szText、TEXT(" %のD×%のD = 2次元%)、Jは、I、I)は、Jを*。  // 変数S、Iは、フォーマット変換シンボルに応じた値の%s%D szTextバッファへ 
            のTextOut(HDC、J * X + 80 I *は、Y + 25 、szText、サイズ); 
            } 
        のTextOut(HDC、650530、TEXT(" 犬WINDOWSアプレット")、17 );      
            
        
        
        

 / * ******************************* **********コアプログラムコード領域************************************ **************************************************************** * /            
            EndPaint(HWND、の&PS);                                          // 最後には、再描画
            の戻り 0 ; 
        } 
   
    デフォルトリターンDefWindowProc関数(HWND、uMsg、wParamに、lParamに);    
 } 
} 

// メイン関数。
INT WINAPIのWinMain(hInstanceはHINSTANCE、HINSTANCE hPrevInstance、LPSTR lpCmdLine、INT nCmdShow){ 
WNDCLASSEX wzgwind = { 0 };                                                  // ウィンドウクラス構造は、登録されたウィンドウクラス準備する 
    wzgwind.cbSizeを= はsizeof(wzgwind);                                      // WNDCLASSEX構造サイズ 
    wzgwind.cbWndExtra = 0 ;                                                // ウィンドウの余分なメモリは、なし、0に設定しました
    = COLOR_WINDOW wzgwind.hbrBackground;                                  // 使用するデフォルトの背景 
     // wzgwind.hbrBackground =(HBRUSH)GetStockObject(GRAY_BRUSH);          // ウィンドウの背景、グレーここで使用される背景(別表記) 
    wzgwind.hCursor LoadCursor =(NULL、 MAKEINTRESOURCE(IDC_ARROW));        // マウス型アプリケーションが使用 
    ; wzgwind.hIcon = LoadIconは(NULL、MAKEINTRESOURCE(IDI_APPLICATION))      // カーソルタイプが 
    wzgwind.hIconSm = NULL;                                                // 小さなカーソル・アプリケーション・プログラムに関係なく、提供あるNULL 
    wzgwind.hInstance = hInstanceは;                                         // のWinMain関数によって渡さアプリケーションのインスタンスハンドル、
    = WndProcメソッドwzgwind.lpfnWndProc;                                         // これは現在のウィンドウハンドラのメッセージであり、WndProcメソッドは、のアドレス渡し、非常に重要である 
    wzgwind.lpszClassName = wzgwindを ;                                     // クラス名クラスを作成する際に使用するために、あなたがカスタマイズすることができます 
    wzgwind.lpszMenuName = NULLを;                                           // 使用NULL、なしのメニュー 
    CS_HREDRAW wzgwind.style = | CS_VREDRAW;                               // クラススタイル、垂直再描画、水平の再描画

ATOM natom = RegisterClassEx(&wzgwind);
     IF(!natom)
    { 
        のMessageBox(NULL、登録に失敗しました" インフォア" 、MB_OK);
        リターン 0 ; 
    } 

HWND HWND =のCreateWindowEx(WS_EX_CLIENTEDGE、" wzgwind "" 勝利-剛"、WS_VISIBLE | WS_OVERLAPPEDWINDOW、
        CW_USEDEFAULT、                                                      / * X * / 
        CW_USEDEFAULT、                                                      / * Y * / 
        840/ * * / 
        680/ * 高さ* / 
        NULL、NULL、hInstanceは、NULL); 



のShowWindow(HWND、nCmdShow); 

UpdateWindow(HWND); 

MSG MSG = { 0 };                                                           // 定義してMSGを初期化
    しばらく!(= Msg.message WM_QUIT)                                        / / メッセージがWM_QUITメッセージでない場合、ループは、ループし続ける
    {
         IF(のPeekMessage(&MSG、000、PM_REMOVE))                      // 場合、メッセージディスパッチうち、メッセージキューをアプリケーションメッセージキューをチェックしてください。
        {
            TranslateMessage(&MSG);                                      // 文字メッセージに仮想キーメッセージが 
            DispatchMessageを(&MSG);                                       // ウィンドウプロシージャにメッセージを配信します。
        } 
    } 

UnregisterClass(" wzgwind " 、wzgwind.hInstance);
 戻り 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/gougouwang/p/11504075.html