投稿日 | : 2004/03/31(Wed) 16:05 |
投稿者 | : おじん |
URL | : |
タイトル | : Re^2: 回避はできたが、、、 |
MSDNに丁度いいサンプルがあり「回避の方法」は解決しました。
ありがとうございました。が、新たな問題(疑問)が発生しました。
蛇足ですが、書き換えたソースを載せます。
'イメージを読みこむ
Dim n%
Dim imgX As ListImage
For n = 0 To 108
gifName = App.Path & "\genso\" & _
CStr(n + 1) & gTbl(n).sign & ".ico"
Set imgX = ImageList1.ListImages. _
Add(, , LoadPicture(gifName))'<---ここを変えた
Next n
End Sub
'イメージを表示
Dim n%
'Picture1.ScaleMode = vbPixels
' MaskColor を設定します。これが透過になります。
ImageList1.MaskColor = vbWhite
For n = 0 To 108
' MaskColor を透過色としてイメージを描画します。
ImageList1.ListImages(n + 1).Draw Picture1.hdc, _
gTbl(n).X, gTbl(n).Y, imlTransparent'<---ここも変えた
' イメージを標準スタイルで描画します。
'ImageList1.ListImages(1).Draw Picture1.hdc, g, g, imlNormal
' 選択スタイルでイメージを描画します。
'ImageList1.ListImages(1).Draw Picture1.hdc, g, g, imlSelected
' フォーカス スタイルでイメージを描画します。
'ImageList1.ListImages(1).Draw Picture1.hdc, g, g, imlFocus
Next n
Picture1.Refresh
End Sub
新たな問題とは、表示位置(x,y)が思うところ(gTbl(n).X,gTbl(n).Y)にならない。
(先のソースの時にgTblの値が正しいことは確認済みです)
それで次のようにしてテストをしてみたが、やはり思うところ(X,Y)には表示されない。
PictureBoxの原点(左上)近くに集まります。値をDisplayしてみると正しい値なので
すが、、、。
Private Sub Picture1_MouseUp( _
Button As Integer, Shift As Integer, _
X As Single, Y As Single)
Static n%
n = n + 1
ImageList1.MaskColor = vbWhite
ImageList1.ListImages(n).Draw Picture1.hdc, X, Y, imlTransparent
Picture1.Refresh
End Sub
よろしくご指導のほどをお願いいたします。