四角形・楕円を描く

今回は、閉じられた図形を描いてみましょう。

Rectangle・Ellipse

Rectangleは四角形を、Ellipseは楕円(円)を描きます。
図形の外側はペンで描かれ、図形内はブラシの色で塗りつぶされます。

例のごとく「多重起動の防止」のソースを使いまわしています。
ウィンドウプロシージャ内に以下の内容を追加します。

               //デバイスコンテキストを取得
               hdc = BeginPaint(hwnd, &paint);
               //領域いっぱいに四角形を描く
               Rectangle (hdc,0,0,240,294) ;
               //領域いっぱいに円・楕円を描く
               Ellipse (hdc,0,0,240,294) ;
               //デバイスコンテキストを解放
               EndPaint(hwnd, &paint);

Rectangle関数では、始点(x1,y1)と長方形の幅,高さを指定します。
Ellipse関数でも、同じく始点(x1,y1)と長方形の幅,高さを指定します。
半径や直径というパラメータはないようですね。円はどう表示されるのでしょう。
では実行してみましょう。

四角形と楕円が描かれました

Rectangleでは、(0,0)から幅240,高さ294ということで
座標でいうと(0,0)と(239,293)を結ぶ四角形を描いています。
Ellipseという関数では、始点からの幅・高さの
長方形の中に円を描くということになるわけですね。

BOOL Rectangle( HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect );
第一引数 hdc には、デバイスコンテキストのハンドルを指定します
第二・三引数 nLeftRect, nTopRect には、始点(左上隅)のx,y座標を指定します
第四・五引数 int nRightRect, nBottomRect には、長方形の幅,高さを指定します

戻り値 成功ならTRUEが、失敗ならFALSEが返ります。

BOOL Ellipse( HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect );
第一引数 hdc には、デバイスコンテキストのハンドルを指定します
第二・三引数 nLeftRect, nTopRect には、始点(左上隅)のx,y座標を指定します
第四・五引数 int nRightRect, nBottomRect には、長方形の幅,高さを指定します

戻り値 成功ならTRUEが、失敗ならFALSEが返ります。

ソースのダウンロード

2005/5/26


戻る