Hi,
floppes wrote:Jetzt habe ich nur zwei Probleme:
Ich habe die Icons für die Tabs in einer ImageList mit transparentem Hintergrund. Ich weise die Icons so zu:
Code: Select all
TabStrip1.hImageList = ImageList1.hImageList
TabStrip1.Tabs.Item(0).IconIndex = 0
Dabei wird aber der transparente Teil des Icons weiß dargestellt. Muss ich noch eine MaskColor irgendwo festlegen?
Dafür habe ich im Moment keine Lösung. Mein Control leitet das alles an die SysTabStrip32-Fensterklasse aus der comctl32.dll weiter. Auch das Zeichnen des Controls wird von SysTabStrip32 übernommen. Es ist also ein Problem in der comctl32.dll.
Ich werde mal versuchen herauszufinden, ob es einen Workaround gibt.
floppes wrote:Das andere betrifft Windows XP/Vista Styles:
Auf den Tabs habe ich Picture Boxen in denen ich jeweils ein Frame habe und darin die Controls. Das Frame wird aber mit falschem Hintergrund (unter XP grau) angezeigt. Ich dachte der Trick um das zu verhindern wäre die Verwendung von einer PictureBox als Container. Oder was mache ich falsch?
Platziert man den Frame von VB6 auf einem VB6-TabStrip, hat der Frame einen komplett grauen Hintergrund. Eine PictureBox als Container des Frames ändert daran nichts.
Platziert man den Frame von VB6 auf meinem TabStrip, hat der Frame einen grauen Hintergrund, außer bei der Beschriftung, welche einen transparenten Hintergrund hat (zumindest unter Vista). Eine PictureBox als Container des Frames führt zu einem komplett grauen Hintergrund.
Platziert man den Frame aus meinen ButtonControls auf meinem TabStrip, hat der Frame den gewünschten transparenten Hintergrund. Eine PictureBox als Container des Frames führt zu einem komplett grauen Hintergrund.
Es war mir leider nicht möglich, das TabStrip so zu schreiben, dass auch der normale VB6-Frame automatisch einen transparenten Hintergrund bekommt.
Grüße
TiKu
[hr]
Translation for visitors not speaking German:
Hi,
floppes wrote:Now I've only two problems:
I've the icons for the tabs in an imagelist with transparent background. I apply the icons this way:
Code: Select all
TabStrip1.hImageList = ImageList1.hImageList
TabStrip1.Tabs.Item(0).IconIndex = 0
But this makes the transparent part of the icons drawn white. Do I have to set a MaskColor anywhere?
Currently I don't have a solution for this one. My control is forwarding all this to the SysTabStrip32 window class out of the comctl32.dll. Drawing the control is done by SysTabStrip32, too. So this is a problem in comctl32.dll.
I'll try to find out whether there's a work-around.
floppes wrote:The other one affects Windows XP/Vista styles:
On the tabs I have PictureBoxes each containing a Frame and the controls inside the Frames. But the Frame is drawn with wrong background (on XP opaque gray). I thought the trick to prevent this would be to use a PictureBox as container. What am I doing wrong?
Placing the VB6 Frame on a VB6 TabStrip makes the Frame's background all gray. A PictureBox as the Frame's container won't change this.
Placing a VB6 Frame on my TabStrip makes the Frame's background all gray, except the caption's background which gets a transparent background (at least on Vista). A PictureBox as the Frame's container makes the background all gray.
Placing the Frame of my ButtonControls on my TabStrip makes the Frame's background transparent as desired. A PictureBox as the Frame's container makes the background all gray.
Unfortunately I wasn't able to write the TabStrip so that also the normal VB6 Frame gets a transparent background automatically.
Greetings
TiKu