Sven wrote:_WIN32_WINNT hat mit Deinem Betriebssystem überhaupt nichts zu tun. Dies ist ein Präprozessor-Makro und es steuert, welche Symbole und Funktionen aus den Windows-Headerdateien beim Kompilieren eingebunden werden sollen.
jo das stimmt. Ich dachte halt, das wird irgendwo in Abhängigkeit vom OS gesetzt, das ist aber Unsinn.
ImageList_DrawIndirect ist zwar eine schöne Funktion, entgegen der MSDN-Doku funktioniert das Teil (auch ohne die erweiterte Struktur) nicht unter Windows 95 mit IE 3 und Commctrl 4.7.
Erste Ergebnisse aus meiner Aktion "Jugend forscht":
Es scheint, wie von ghisler schon angedeutet, einige Kompatibilitätsprobleme bei den Commctrl zu geben. Da hilft nur testen unter allen Commctrl-Versionen.
1. So habe ich festgestellt, dass die Toolbar unter Win 95 unter bestimmten Umständern (Flags) flackert, was bei einem identischen Programm unter XP nicht passiert. 100% eingekreist habe ich das Problem noch nicht.
2. Wenn ich meiner ImageList zum Beispiel 5 Symbole hinzufüge, die ersten beiden enthalten keine "XP-Symbole", die anderen schon. Wenn ich nun dem letzten Button TBSTATE_INDETERMINATE gebe wird der Button falsch gezeichnet (Er verhält sich inaktiv, sieht aber nicht so aus). Die Symbole mit niedriger Farbtiefe jedoch werden im inaktiven Status korrekt gezeichnet. Wenn ich nur "XP-Symbole in die ImageList lade, wird der inaktive Button korrekt gezeichnet (was ziemlich gut aussieht

).
3. Wenn ich die Nachricht TB_SETBITMAPSIZE nicht sende werden die Symbole unter Win 95 auf den Buttons an die falsche Stelle gemalt. Unter XP geht das auch ohne diese Nachricht.
4. Unter Win 95 habe ich es bislang nicht hingekriegt, einen Rechtsklick auf die ToolBar oder einen ToolButton abzufangen (Es wird immer 0 als erkannter Button zurückgegeben). Unter XP null problemo (immer der korrekte Index bzw. negativer Wert wenn Toolbar)
Sven wrote:
Mit welcher Programmiersprache bzw. mit welchem Compiler arbeitest Du?
MS 7.1 (IDE und Compiler)