Hallo,
ik heb dit topic al een keer gepost maar geen antwoord gekregen. Ik hoop dat iemand het nu wel weet!
Het probleem is dat icoontjes zoals die van Internet Explorer in Windows XP een Alpha channel hebben, en er is dus een bug in VS .Net waardoor deze weggelaten word wanneer je het icoontje inlaad in een button of picturebox als .image. Zie hier voor informatie over deze bug en een zgn 'workaround'
http://support.microsoft....aspx?scid=kb;en-us;822488
Oke, eerst creeer ik Dynamisc een 2d-array van PictureBox's in een functie genaamd PictureBoxArray. Verder heb ik een
PictureBoxArray_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) handles MyBase.paint.
Hier worden icoontje ingeladen, van bijv. een .ico:
of van een .exe file:
Mijn code is in principe goed, de icoontjes worden ingeladen, alleen zien de Alpha iconen er lelijk uit. Waar normaal Alpha is is het nu zwart (beetje schaduw achtig).
De workaround van Microsoft klopt niet helemaal volgens mij, of ze geven te weinig informatie. Probeer het maar uit, wat zei zeggen
Zoiezo al zou hij werken, is het nog niet helemaal wat ik wil want zij drukken het icoontje af met E.DrawGraphics en ik stop hem in een picturebox, zodat je er op kan klikken, tooltiptext hebt etc.
Maar goed, ik kan in principe ook een array van Icon's (IconArray
) maken, maar dan zit ik inprincipe nog met hetzelfde probleem.
Ik heb al veel gezocht op Google, maar zo'n beetje alles wat ik vond was van toepassing op VB6, of had er niet mee te maken
Mijn programma is bijna af, hij werkt goed, meerdere mensen laten testen, maar die icoontjes zien er nog niet mooi uit, dus is ie nog niet af. Ik hoop dat iemand me kan helpen.
ik heb dit topic al een keer gepost maar geen antwoord gekregen. Ik hoop dat iemand het nu wel weet!
Het probleem is dat icoontjes zoals die van Internet Explorer in Windows XP een Alpha channel hebben, en er is dus een bug in VS .Net waardoor deze weggelaten word wanneer je het icoontje inlaad in een button of picturebox als .image. Zie hier voor informatie over deze bug en een zgn 'workaround'
http://support.microsoft....aspx?scid=kb;en-us;822488
Oke, eerst creeer ik Dynamisc een 2d-array van PictureBox's in een functie genaamd PictureBoxArray. Verder heb ik een
PictureBoxArray_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) handles MyBase.paint.
Hier worden icoontje ingeladen, van bijv. een .ico:
code:
1
2
3
| Dim Hicon As IntPtr = LoadImage(0, button_icon(teller1, teller2), 1, 0, 0, 16)
Dim iconBitmap As Bitmap = Bitmap.FromHicon(Hicon)
PictureBoxArray(teller1, teller2).Image = iconBitmap |
of van een .exe file:
code:
1
2
3
4
5
6
| hImgLarge = SHGetFileInfo(button_path(teller1, teller2), 0, shinfo, Marshal.SizeOf(shinfo), _ SHGFI_ICON Or SHGFI_LARGEICON) myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon) PictureBoxArray(teller1, teller2).Image = myIcon.ToBitmap myIcon.Dispose() |
Mijn code is in principe goed, de icoontjes worden ingeladen, alleen zien de Alpha iconen er lelijk uit. Waar normaal Alpha is is het nu zwart (beetje schaduw achtig).
De workaround van Microsoft klopt niet helemaal volgens mij, of ze geven te weinig informatie. Probeer het maar uit, wat zei zeggen
Zoiezo al zou hij werken, is het nog niet helemaal wat ik wil want zij drukken het icoontje af met E.DrawGraphics en ik stop hem in een picturebox, zodat je er op kan klikken, tooltiptext hebt etc.
Maar goed, ik kan in principe ook een array van Icon's (IconArray
Ik heb al veel gezocht op Google, maar zo'n beetje alles wat ik vond was van toepassing op VB6, of had er niet mee te maken
Mijn programma is bijna af, hij werkt goed, meerdere mensen laten testen, maar die icoontjes zien er nog niet mooi uit, dus is ie nog niet af. Ik hoop dat iemand me kan helpen.
Wat een onzin..