いつもお世話になっております。
VB6.0で見た目はメッセージボックスと全く同じに見えるフォームを
自作したいと思います。
そこで、メッセージボックスで表示される各種メッセージアイコンを
その自作フォームでも使用したいのですが、あのアイコンはどこに
存在するのかご存知でしたら、教えて下さい。
アイコンをビットマップにして、LaodPictureを使用して表示する
というのが仕様です。
宜しくお願いします。
環境によって異なるかも知れませんが、
私の環境 (Win2000SP3 + VB6SP5) では、
Program Files\Microsoft Visual Studio\Common\Graphics\Icons\Computer
の中の
W95MBX01.ICO, W95MBX02.ICO, W95MBX03.ICO, W95MBX04.ICO
です。
LoadPicture を行うよりも、
Image コントロールなどで、デザイン時に読み込んでおいた方がよいかと思います。
そうすれば、実行ファイルにした時に、 EXE の中に画像を含めることができます。
API関数を使っての表示方法。
システムで使用されているアイコンは、ストックアイコンといい、
API関数を使用して読み込むことができます。
システムに設定されているアイコンを読み込むことにより、
違和感が発生しないでしょう。
Private Declare Function LoadIcon Lib "user32" Alias "LoadIconA" (ByVal hInstance As Long, ByVal lpIconName As Long) As Long
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
Private Const IDI_APPLICATION = 32512&
Private Const IDI_ASTERISK = 32516&
Private Const IDI_EXCLAMATION = 32515&
Private Const IDI_HAND = 32513&
Private Const IDI_QUESTION = 32514&
Private Sub Form_Load()
Dim hIcon As Long
Picture1.AutoRedraw = True
hIcon = LoadIcon(0, IDI_EXCLAMATION)
Debug.Print DrawIcon(picture1.hdc, 0, 0, hIcon)
End Sub
>1412様、k.k様
アイコンも見つかり、表示も出来ました。
API関数の使い方は知りませんでしたので、
勉強になりました。
ご教授ありがとうございました。
ツイート | ![]() |