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





API 技術関連のページへ戻る

ホーム PV ランキング