32.アイコンを描画する
< 使用用途 >
アイコンを描画する
今回のサンプルソースをダウンロードする方は下記の「ダウンロード」を!
=> ダウンロード ・・・ 下に書いてあるサンプルソースと同じです
< 説明 >
API関数のDrawIconEx とExtractIconEx を使用します。
DrawIconEx=>アイコンを描画する
<引数>
hDC&:絵画先ハンドル
xLeft&:絵画位置(LEFT)
Top&:絵画位置(TOP)
hIcon&:アイコンハンドル
cxWidth&:転送する横幅
cyWidth&:転送する縦幅
istepIfAniCur&:アニメートアイコンのフレーム番号
hbrFlickerFreeDraw&:背景のブラシ
diFlags&:定数(DI_××参照)
*ExtractIconEx は「33、EXE,DLLのアイコンのハンドルを取得する」を参照
< SAMPLE >
’ここではC:\Windows\Calc.exeのアイコンを取得してPicture1に描画します。
'標準モジュール
Public Declare Function DrawIconEx Lib "USER32" (ByVal hDC&,
ByVal xLeft&, ByVal yTop&, ByVal hIcon&, ByVal cxWidth&,
ByVal cyWidth&, ByVal istepIfAniCur&, ByVal hbrFlickerFreeDraw&,
ByVal diFlags&) As Long
Public Declare Function ExtractIconEx Lib "shell32.dll" Alias
"ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex
As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long)
As Long
'ropImageとropMaskのラスタ操作を実行する
Public Const DI_NORMAL = &H3
'ここからはフォームの処理
Private Sub Command1_Click()
Dim Ret As Long
Dim nFile As String
Dim L As Long
Dim S As Long
nFile="C:\Windows\Calc.exe"
Ret = ExtractIconEx(nFile, 0, L, S, 1)
DrawIconEx Form1.Picture1.hDC, 0, 0, L, 0, 0, vbNull, 0, DI_NORMAL
End Sub