メッセージボックスで表示されるアイコンの格納場所は?

解決


さとこ  2003-10-17 16:55:11  No: 79854  IP: [192.*.*.*]

いつもお世話になっております。

VB6.0で見た目はメッセージボックスと全く同じに見えるフォームを
自作したいと思います。
そこで、メッセージボックスで表示される各種メッセージアイコンを
その自作フォームでも使用したいのですが、あのアイコンはどこに
存在するのかご存知でしたら、教えて下さい。

アイコンをビットマップにして、LaodPictureを使用して表示する
というのが仕様です。

宜しくお願いします。

編集 削除
1412  2003-10-17 17:49:19  No: 79855  IP: [192.*.*.*]

環境によって異なるかも知れませんが、
私の環境 (Win2000SP3 + VB6SP5) では、
Program Files\Microsoft Visual Studio\Common\Graphics\Icons\Computer
の中の
W95MBX01.ICO, W95MBX02.ICO, W95MBX03.ICO, W95MBX04.ICO
です。

LoadPicture を行うよりも、
Image コントロールなどで、デザイン時に読み込んでおいた方がよいかと思います。
そうすれば、実行ファイルにした時に、 EXE の中に画像を含めることができます。

編集 削除
k.k  2003-10-17 18:29:24  No: 79856  IP: [192.*.*.*]

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

編集 削除
さとこ  2003-10-22 10:26:42  No: 79857  IP: [192.*.*.*]

>1412様、k.k様

  アイコンも見つかり、表示も出来ました。
  API関数の使い方は知りませんでしたので、
  勉強になりました。
  
  ご教授ありがとうございました。

編集 削除