コマンドボタンにアイコンを表示


KENT  2009-09-09 01:09:33  No: 142515

コマンドボタンにEXEのアイコンを表示させたいのですが方法が分かりません。SHGetFileInfo()関数を使いアイコンの取得までは分かるのですが、コマンドボタンのPictureに表示する方法が分かりません。
VB6を使用しています。


subaru  2009-09-09 16:59:10  No: 142516

OleCreatePictureIndirect を使うと
アイコンハンドルからVB6のPictureオブジェクトに変換できます。


KENT  2009-09-09 23:18:00  No: 142517

subaruさん、ありがとうございます。OleCreatePictureIndirectについて自分なりに調べてみたのですが、難しすぎて理解できません。何か参考になるサイトなりありませんでしょうか?


subaru  2009-09-10 14:16:44  No: 142518

グーグル先生に聞いて最初に出てきたページですが参考になりますか?
http://support.microsoft.com/kb/161299/ja

上記ページの CreateBitmapPicture 関数ではビットマップの変換なので、
OleCreatePictureIndirect の第1引数に渡す
PICTDESC 構造体をアイコン用に修正してください。

こんな感じで定義しておけばいいと思います。

Type PICTDESC
    cbSizeofstruct As Long
    picType As Long
    hicon As OLE_HANDLE
    reserved1 As Long
    reserved2 As Long
End Type


魔界の仮面弁士  2009-09-10 15:25:24  No: 142519

検索例として。

http://www.google.co.jp/codesearch?hl=ja&lr=&q=OleCreatePictureIndirect+icon+lang%3Abasic


※作成する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。







   このエントリーをはてなブックマークに追加