Lineto() で直線を描画する



VC++ の MoveToEx() と LineTo() 関数で直線を描画します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. 新規プロジェクト(Line)を作成して WM_PAINT の位置までスクロールして下さい。
    プロジェクトの作成方法は Hello Window! を画面に表示する を参照して下さい。
  2. WM_PAINT: に直線を描画するソースコードを追加します。
          case WM_PAINT:
               hdc = BeginPaint(hWnd, &ps);
               // TODO: 描画コードをここに追加してください...
               MoveToEx(hdc,200,60,NULL);       // 開始点に移動
               LineTo(hdc,50,200);              // 線を描く
               LineTo(hdc,350,200);             // 線を描く
               LineTo(hdc,200,60);              // 線を描く
               EndPaint(hWnd, &ps);
               break;
        
  3. [デバッグ][デバッグなしで開始]を選択して、ビルドに続いて実行を行います。
    コンパイルの進行状況とエラーがあれば、エラーメッセージが表示されます。
    三本の「黒く細い線」で三角形が表示されたら完成です。

【演習】

  1. 四角形や五角形を描いてみて下さい。
  2. 思いのままに線を描画してみましょう。

【NOTE】

線を描画するソースコードの説明です。
MoveToEx() で直線の開始座標に移動します。
LineTo() は現在設定されている座標から引数で指定した座標に線を描画する関数です。
線を引き終わると引数で指定した座標が新しい現在座標になります。
ソースコード 説明
MoveToEx(hdc,200,60,NULL) 線の開始点(200,60)に移動します
LineTo(hdc,50,200) 現在の座標(200,60)から(50,200)に線を引きます
LineTo(hdc,350,200) 現在の座標(50,200)から(350,200)に線を引きます
LineTo(hdc,200,60) 現在の座標(350,200)から(200,60)に線を引きます

【赤や緑や青のカラーペンを使う】

  1. ペンやブラシを使うときは、現在設定されている物を退避しておいて描画が終われば元に戻して下さい。
    この処理を怠ると実行中の他のプログラムに悪影響が及ぶことがあります。
    作成したペンやブラシは、使い終わるとその領域を開放して下さい。
  2. カラーペンを設定して描画するソースコードです。
        // TODO: 描画コードをここに追加してください...
        HPEN        hPen,hOldPen;
    
        hPen= CreatePen(PS_SOLID,5,RGB(255,0,0));       // 幅5ピクセルの赤ペン
        hOldPen= (HPEN)SelectObject(hdc,hPen);          // hPen を選択
    
        MoveToEx(hdc,200,60,NULL);                      // 開始点に移動
        LineTo(hdc,50,200);                             // 線を描く
        LineTo(hdc,350,200);                            // 線を描く
        LineTo(hdc,200,60);                             // 線を描く
    
        SelectObject(hdc,hOldPen);                      // hPen を戻す
        DeleteObject(hPen);                             // ペンを削除
        
  3. ソースコードの説明です。
    ソースコード 説明
    HPEN hPen 新しく作成するペンの領域
    hOldPen 現在のペンを保存する領域
    CreatePen() 新しいペンを作成
    5 ペンの太さ
    RGB(255,0,0) ペンの色(赤、緑、青)の濃さ
    SelectObject()図形を描くペンを設定
    DeleteObject()使い終わったらペンを削除
  4. 修正して再ビルドするときは、実行画面を閉じて下さい。
    実行画面は独立して起動しています。従って、画面を閉じないと実行ファイル(.EXE)がビジーになり更新できません。

【演習2】

画面上部の画像と同じように、カラーペンを使って線を描いて下さい。

超初心者のプログラム入門(Win32API C++)