矩形を描画するには

矩形を描画してみます。
キーワードは「Rectangle()関数」です。
Rectangle()関数は各頂点の座標を指定するだけで矩形を描画してくれる関数です。
塗りつぶしにはデバイスコンテキストに選択されているブラシを使用します。
FillRect()関数も同じように矩形を描画することができます。
FillRect()関数はブラシを自分で作成してデバイスコンテキストに選択せずに塗りつぶすことができます。
(もちろん、デバイスコンテキストのブラシも使えます。)

サンプルではRectangle()関数を使って矩形を描画しています。
実行時の様子

'矩形を描画する
Private Declare Function Rectangle Lib "gdi32.dll" _
        (ByVal hdc As Long, ByVal nLeftRect As Long, ByVal nTopRect As Long, _
        ByVal nRightRect As Long, ByVal nBottomRect As Long) As Long
'デバイスコンテキストにオブジェクトを選択する
Private Declare Function SelectObject Lib "gdi32.dll" _
    (ByVal hdc As Long, ByVal hgdiobj As Long) As Long
'グラフィックスオブジェクトを削除し、システムリソースを開放する
Private Declare Function DeleteObject Lib "gdi32.dll" (ByVal hObject As Long) As Long
'ソリッドカラー(純色)で論理ブラシを作成する
Private Declare Function CreateSolidBrush Lib "gdi32.dll" _
    (ByVal crColor As Long) As Long

Private Sub Form_Load() Me.Picture1.ScaleMode = 3 'ピクセルモード End Sub
Private Sub Picture1_Paint() Dim hbr As Long, hOld As Long With Me.Picture1 .BackColor = vbWhite '背景色 '矩形を描画 .ForeColor = vbRed '枠線の色 hbr = CreateSolidBrush(RGB(240, 255, 140)) '塗りつぶしの色 hOld = SelectObject(.hdc, hbr) Call Rectangle(.hdc, 30, 30, .ScaleWidth - 60, .ScaleHeight - 60) Call SelectObject(.hdc, hOld) Call DeleteObject(hbr) End With End Sub
ダウンロード