プログラミング研究所 プログラミング研究所 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