次の方法で共有


Cursor.Draw メソッド

カーソルを、指定した範囲内の、指定した表面に描画します。

Public Sub Draw( _
   ByVal g As Graphics, _   ByVal targetRect As Rectangle _)
[C#]
public void Draw(Graphicsg,RectangletargetRect);
[C++]
public: void Draw(Graphics* g,RectangletargetRect);
[JScript]
public function Draw(
   g : Graphics,targetRect : Rectangle);

パラメータ

解説

描画コマンドは g パラメータで表すグラフィックスの表面で開始されますが、 Graphics は指定されたイメージの描画方法に関する情報を格納していないため、この呼び出しを Cursor に渡します。 Draw メソッドは、イメージを指定した大きさにトリミングします。また、このメソッドにより、 Rectangle を指定すると、その範囲内で Cursor を描画できます。通常、このメソッドは、グラフィックスの表面にカーソルを描画する場合に使用します。たとえば、ユーザーが ListBox コントロールまたは RadioButton コントロールのグループからカーソルを選択できるダイアログがある場合などに使用します。

使用例

[Visual Basic, C#, C++] フォーム上に、指定されたカーソルをその通常サイズで描画し、次にストレッチ モードで 2 倍のサイズに描画する例を次に示します。この例は、 Form があり、呼び出されたときにメソッドに渡す Cursor オブジェクトがあることを前提にしています。

 
Private Sub DrawCursorsOnForm(cursor As Cursor)
   ' If the form's cursor is not the Hand cursor and the 
   ' Current cursor is the Default, Draw the specified 
   ' cursor on the form in normal size and twice normal size. 
   If (Not Me.Cursor.Equals(Cursors.Hand)) And _
     Cursor.Current.Equals(Cursors.Default) Then

      ' Draw the cursor stretched.
      Dim graphics As Graphics = Me.CreateGraphics()
      Dim rectangle As New Rectangle(New Point(10, 10), _
        New Size(cursor.Size.Width * 2, cursor.Size.Height * 2))
      cursor.DrawStretched(graphics, rectangle)
     
      ' Draw the cursor in normal size.
      rectangle.Location = New Point(rectangle.Width + _
        rectangle.Location.X, rectangle.Height + rectangle.Location.Y)
      rectangle.Size = cursor.Size
      cursor.Draw(graphics, rectangle)

      ' Dispose of the cursor.
      cursor.Dispose()
   End If
End Sub

[C#] 
private void DrawCursorsOnForm(Cursor cursor)
{
   // If the form's cursor is not the Hand cursor and the 
   // Current cursor is the Default, Draw the specified 
   // cursor on the form in normal size and twice normal size.
   if(this.Cursor != Cursors.Hand & 
     Cursor.Current == Cursors.Default)
   {
      // Draw the cursor stretched.
      Graphics graphics = this.CreateGraphics();
      Rectangle rectangle = new Rectangle(
        new Point(10,10), new Size(cursor.Size.Width * 2, 
        cursor.Size.Height * 2));
      cursor.DrawStretched(graphics, rectangle);
        
      // Draw the cursor in normal size.
      rectangle.Location = new Point(
      rectangle.Width + rectangle.Location.X, 
        rectangle.Height + rectangle.Location.Y);
      rectangle.Size = cursor.Size;
      cursor.Draw(graphics, rectangle);

      // Dispose of the cursor.
      cursor.Dispose();
   }
}

[C++] 
private:
   void DrawCursorsOnForm(System::Windows::Forms::Cursor* cursor) {
      // If the form's cursor is not the Hand cursor and the
      // Current cursor is the Default, Draw the specified
      // cursor on the form in normal size and twice normal size.
      if (this->Cursor != Cursors::Hand &&
         System::Windows::Forms::Cursor::Current == Cursors::Default) {
            // Draw the cursor stretched.
            Graphics* graphics = this->CreateGraphics();
            Rectangle rectangle =  Rectangle( Point(10, 10),  System::Drawing::Size(cursor->Size.Width * 2,
               cursor->Size.Height * 2));
            cursor->DrawStretched(graphics, rectangle);

            // Draw the cursor in normal size.
            rectangle.Location =  Point(rectangle.Width + rectangle.Location.X,
               rectangle.Height + rectangle.Location.Y);
            rectangle.Size = cursor->Size;
            cursor->Draw(graphics, rectangle);

            // Dispose of the cursor.
            cursor->Dispose();
         }
   }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

Cursor クラス | Cursor メンバ | System.Windows.Forms 名前空間 | DrawStretched