英語で読む

次の方法で共有


Icon.FromHandle(IntPtr) メソッド

定義

指定した Windows ハンドルからアイコン (HICON) に GDI+ Icon を作成します。

C#
public static System.Drawing.Icon FromHandle(IntPtr handle);

パラメーター

handle
IntPtr

アイコンへの Windows ハンドル。

戻り値

このメソッドによって作成される Icon

次のコード例は Windows フォームで使用できるように設計されており、Paint イベント ハンドラーのパラメーターである PaintEventArgseが必要です。 このコードは、次のアクションを実行します。

  • Bitmapを作成します。

  • そのオブジェクトを画面に描画します。

  • Bitmapのアイコン ハンドルを取得します。

  • フォームの Form.Icon 属性をハンドルから作成されたアイコンに設定します。

  • リソースを解放するために Windows API 関数 DestroyIcon を呼び出します。

C#

[System.Runtime.InteropServices.DllImport("user32.dll", CharSet = CharSet.Auto)]
extern static bool DestroyIcon(IntPtr handle);

private void GetHicon_Example(PaintEventArgs e)
{

    // Create a Bitmap object from an image file.
    Bitmap myBitmap = new Bitmap(@"c:\FakePhoto.jpg");

    // Draw myBitmap to the screen.
    e.Graphics.DrawImage(myBitmap, 0, 0);

    // Get an Hicon for myBitmap.
    IntPtr Hicon = myBitmap.GetHicon();

    // Create a new icon from the handle. 
    Icon newIcon = Icon.FromHandle(Hicon);

    // Set the form Icon attribute to the new icon.
    this.Icon = newIcon;

    // You can now destroy the icon, since the form creates
    // its own copy of the icon accessible through the Form.Icon property.
    DestroyIcon(newIcon.Handle);
}

注釈

このメソッドを使用する場合は、リソースが確実に解放されるように、Windows API の DestroyIcon メソッドを使用して元のアイコンを破棄する必要があります。

適用対象

製品 バージョン
.NET 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10