全然更新しないブログ
HSPメモ帳
アイコン描画
「アイコン取得と描画」
「ExtractIcon」では取得できないアイコン(関連付けされているアイコン)を取得します。
「ExtractAssociatedIcon」を使用します。
第三引数が違うだけです。
ファイル、フォルダのアイコン描画 |
////////////////////////////////////////////////////////////////////// // MODULE DRAW_ICON #module DRAW_ICON // 関数の登録 #uselib "shell32.dll" #cfunc ExtractAssociatedIcon "ExtractAssociatedIconA" int,str,var #uselib "user32.dll" #func DestroyIcon "DestroyIcon" int #cfunc DrawIcon "DrawIcon" int,int,int,int #cfunc DrawIconEx "DrawIconEx" int,int,int,int,int,int,int,int,int // アイコン(hIcon)を取得 #defcfunc GetIcon str filename,int p iIcon=p hIcon=ExtractAssociatedIcon(hinstance,filename,iIcon) return hIcon // アクティブウィンドウの // カレントポジション(ginfo(22),ginfo(23))にINDEX(p)の // アイコン(filename)を描画 #deffunc DrawIcon str filename,int p hIcon=GetIcon(filename,p) if( hIcon == 0 ) : return 0 ret=DrawIcon(hdc,ginfo(22),ginfo(23),hIcon) redraw 1 DestroyIcon hIcon return ret // アクティブウィンドウの // カレントポジション(ginfo(22),ginfo(23))に // サイズ(x,y)でINDEX(p)のアイコン(filename)を描画 #deffunc DrawIconEx str filename,int p,int x,int y hIcon=GetIcon(filename,p) if( hIcon == 0 ) : return 0 ret=DrawIconEx(hdc,ginfo(22),ginfo(23),hIcon,x,y,0,0,0x03) redraw 1 DestroyIcon hIcon return ret #global //////////////////////////////////////////////////////////////////////////// *main pos 10,10 DrawIcon "c:\\",0 pos 50,50 DrawIcon "c:\\windows\\system32\\user32.dll",1 pos 100,100 DrawIconEx "c:\\",0,120,120 stop |
コメント ( 0 ) | Trackback ( 0 )