掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ボタンにアイコンを表示するには? (ID:75389)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
コマンドボタンにアイコンを表示する方法はそんなに難しくは ないと思います。 以下の方法で出来ました。 1.APIの ExtractIconEx()関数を使い、アイコンのハンドルを取得。 2.APIの DrawIconEx()関数を使い、ピクチャーボックスにアイコンを 描画する。 3.コマンドボタンの Pictureオブジェクトに、2.で使用したピクチャ −ボックスの Imegeオブジェクトをセットする。 注意する点は、ピクチャーボックスの大きさをアイコンのサイズにしておく ことです。そうしないとアイコンの表示位置がずれてしまいます。 以下に、ソースコードを書いておきます。 参考にしてみてください。 - - - - - - - - - - - - - - - - Option Explicit Private 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 Private 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 Private Declare Function DestroyIcon Lib "user32" _ (ByVal hIcon As Long) As Long 'ropImageとropMaskのラスタ操作を実行する Const DI_NORMAL = &H3 Private Sub Command1_Click() Dim lRet As Long ' 戻り値 Dim sFileName As String ' 取得するファイル名 & パス Dim lLargeIcon As Long ' 大きいアイコン ' アイコン ハンドルの取得 sFileName = "C:\Winnt\Explorer.exe" ' エクスプローラを指定 lRet = ExtractIconEx(sFileName, 0, lLargeIcon, 0, 1) ' アイコンの描画 lRet = DrawIconEx(Picture1.hDC, 0, 0, lLargeIcon _ , 0, 0, vbNull, 0, DI_NORMAL) Set Command2.Picture = Picture1.Image ' アイコン ハンドルの破棄 lRet = DestroyIcon(lLargeIcon) End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.