プログラミング研究所 プログラミング研究所 http://www.program-lab.jp/
プログラミング研究所
プログラム研究自作ソフトウェアプログラムメモリンク


  • カテゴリ別アーカイブ

    .NET Framework
    C++/CLI
    DirectX
    GBA
    JavaScript
    OSSの移植
    PHP
    Win32/64
    WordPress
    その他
    ソフトウェアの設定
    ツール
    ライブラリ
    自作ソフト
    製品レビュー


  • エントリ一覧


    Syndicate this site (XML)

    Powered by
    Movable Type







  • 管理者:NMVL

    nmvl★program-lab.jp
    ※アドレスの ★ を @ に置き換えてください。

    釣りの話題はこちらから
    www.fishing.hokkaido.jp






    « マルチスレッド処理 | メイン | ウィンドウの無効化 »

  • ファイルからアイコンを取得する 【C++/CLI】
    ファイルに関連づけられたアイコンを取得する場合は、
    System::Drawing::Icon::ExtractAssociatedIconあたりで可能らしいが、
    任意のファイルの任意のアイコンを取得する時はよく解らない。
    よく解らないので、Win32 APIでやってみた。

    HICON nhIcon;
    System::Drawing::Icon^ chIcon;
    ::ExtractIconEx( "取得するファイルのパス", (int)アイコンのインデックス番号, NULL, &nhIcon, 1 );
    chIcon = System::Drawing::Icon::FromHandle( (System::IntPtr)nhIcon );


    上の例では、スモールアイコンのみ取得してるがラージアイコンも同じように取れるはず。
    あと、HICONのnhIconの::DestroyIconはchIconが使い終わってからのほうがいいらしい。
    FromHandle後、直ぐに解放するとエラーが出たので、
    System::Drawing::Iconは、HICONのハンドルを保持してるってことかもしれない。
    データコピーして使ってる訳じゃないのか?


    投稿者 NMVL : 2006年4月22日 15:53