Fenster im XP-Stil



  • Hallo,
    ich habe diese Anleitung gefunden, um Fenstern mit der WinApi einen XP-Stil zu verpassen: http://www.winapi.net/index.php?inhalt=t8
    Ich kam bis zu diesem Schritt:

    Dies IDR_RT_MANIFEST1 müssen wir nun noch umbenennen in "1"

    Danach soll (wie ihr ja seht) eine Funktion aufgerufen werden, was ja eigentlich kein Problem ist. Aber dann hatte ich endgültig keine Ahnung mehr:

    Dazu binden wir die commctrl.h ein
    Einfach ganz am Anfang wo auch die windows.h includet wird ein #include "commctrl.h" oder wie? 😕

    Und dann soll man noch mit der comctl32.lib verlinken. Wie geht das denn? 😕

    Es wäre sehr nett, wenn ihr mir da weiterhelfen könntet 🙂
    ph4nt0m



  • ph4nt0m schrieb:

    Danach soll (wie ihr ja seht) eine Funktion aufgerufen werden

    Das ist die "InitCommonControls"

    ph4nt0m schrieb:

    Dazu binden wir die commctrl.h ein
    Einfach ganz am Anfang wo auch die windows.h includet wird ein #include "commctrl.h" oder wie? 😕

    Ich hätte es so gemacht:

    #include <windows.h>
    #include <commctrl.h>
    

    ph4nt0m schrieb:

    Und dann soll man noch mit der comctl32.lib verlinken. Wie geht das denn? 😕

    Ich hätte es so gemacht:

    #pragma comment(lib, "comctl32.lib")
    

    Siehe auch:
    http://www.codeproject.com/w2k/xptheme.asp



  • Es gibt auch eine alternative Möglichkeit. Man kann auch nur bestimmte *.h-dateien includen und paar Parameter setzen, für XP-Styles.

    Lade dir das PSDK herunter. Diese Methode ist VIEL BESSER als ne manifest datei einzubinden. Glaub mir, mit der manifestdatei wirst du probleme mit der darstellung bestimmter kontrollelemente haben.

    das wars.



  • Besucher. schrieb:

    Es gibt auch eine alternative Möglichkeit. Man kann auch nur bestimmte *.h-dateien includen und paar Parameter setzen, für XP-Styles.

    AFAIK bekommst Du ohne Manifest keinen XP-Style... oder sag doch einfach mal wie das geht!



  • Danke für die Hilfe. Ich hab es jetzt genau so gemacht, aber es will nicht funktionieren. Es gibt zwar keinen Fehler, aber es Programm sieht immer noch aus wie vorher, ohne den XP-Stil. 😕
    ph4nt0m



  • Du könntest es so versuchen:
    http://www.codeguru.com/cpp/controls/controls/article.php/c5227/

    Hier wird die Resource manuell eingefügt, dabei kann wirklich nichts schiefgehen 🙂



  • Danke, wenns gar nicht geht versuche ich das. Aber wo muss der Aufruf von InitCommonControls() denn genau hin? als erster Aufruf in WinMain? Ich habe den Eindruck, dass es damit zusammenhängt...
    ph4nt0m



  • In InitInstance ??? (den Link den Du selber gepostet hast, hast Du Dir aber angesehen, oder?)



  • denke nicht dass es am InitCommonControls() liegt...denn unter xp besteht diese funktion nur aus einem "RETN"...

    außerdem sollte man doch sowieso lieber InitCommonControlsEx() verwenden?!



  • Jochen Kalmbach schrieb:

    ph4nt0m schrieb:

    Und dann soll man noch mit der comctl32.lib verlinken. Wie geht das denn? 😕

    Ich hätte es so gemacht:

    #pragma comment(lib, "comctl32.lib")
    

    Ich würde sowas lieber über die Projekteinstellungen machen, schliesslich kennt nicht jeder Compiler diese #pragma Anweisung.

    Eine Sache die mir vor einiger Zeit bei der aktuellen VC Edition aufgefallen ist (iirc), war, dass man die Manifest Datei den Projektdateien hinzufügen muss, ansonsten hat es nicht funktioniert, trotz exakter Befolgung diverser Anleitungen im Netz.


Anmelden zum Antworten