none
Neue Control styles anzeigen RRS feed

  • Frage

  • Hallo,

    ich nutze MS Visual Studio 2015 auf Windows 10.
    Ich habe eine MDI Applikation mit CFormViews erstellt. Die Buttons und Controls werden noch im alten XP-Stil angezeigt, nicht im neueren Windows 7-Look.

    In der stdafx.h steht

    #ifdef _UNICODE
    #if defined _M_IX86
    #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
    #elif defined _M_X64
    #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
    #else
    #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
    #endif
    #endif

    Genutzt wird das _M_X64 Manifest (X64 Unicode).

    In meiner InitInstance() steht:

     // InitCommonControlsEx() ist für Windows XP erforderlich, wenn ein Anwendungsmanifest
     // die Verwendung von ComCtl32.dll Version 6 oder höher zum Aktivieren
     // von visuellen Stilen angibt.  Ansonsten treten beim Erstellen von Fenstern Fehler auf.
     INITCOMMONCONTROLSEX InitCtrls;
     InitCtrls.dwSize = sizeof(InitCtrls);
     // Legen Sie dies fest, um alle allgemeinen Steuerelementklassen einzubeziehen,
     // die Sie in Ihrer Anwendung verwenden möchten.
     InitCtrls.dwICC = ICC_WIN95_CLASSES | ICC_DATE_CLASSES;// | ICC_STANDARD_CLASSES;
     InitCommonControlsEx(&InitCtrls);

    Ob ich die ICC_WIN95_ rausnehme und die ICC_STANDARD_ reinnehme, hat gar keinen Effekt. Auch beide zusammen haben gar keinen Effekt.

    Wie aktiviere ich die neuen Stile?

    Danke für Hilfe.

    Guido

    Freitag, 11. November 2016 11:05

Antworten

  • Die Grundsätzliche Fragre wäre erst einmal was der "alten XP-Stil" ist. MFC stellt sich nämlich nicht dar als blaue / oliv und silberne Fenster von sich aus. Die Ausnahme wäre man hat den MFC VisualManager in Gebrauch. Alles in allen sind die informationen recht spärlich. Ein Screenshot wäre zur visuellen Identifizierung vielleicht nicht schlecht gewesen?

    Meine Vermutung wäre der "alten XP-Stil" ist die GUI Optik aus Windows 2000, was in XP als "Classic Style" oder so umschrieben wurde. Wenn dem so wäre, dann ist es hilfreich, wenn man sein Projekt als UNICODE baut. Die ANSI Version der MFC unterstützt die Stile des DWM nicht mehr.


    Best regards

    Bordon

    Note: Posted code pieces may not have a good programming style and may not perfect. It is also possible that they do not work in all situations. Code pieces are only indended to explain something particualar.

    • Als Antwort markiert Guido Franzke Donnerstag, 24. November 2016 07:39
    Mittwoch, 23. November 2016 05:41
  • Hallo Guido,

    Gibt die Funktion InitCommonControlsEx FALSE zurück? Wenn dem so ist, hoffe ich, dass folgender Thread Dir weiterhilft:
    How to enable common controls in a Windows app

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    • Als Antwort markiert Guido Franzke Donnerstag, 24. November 2016 07:39
    Dienstag, 22. November 2016 12:17
    Administrator
  • Der VisualManager ist das Problem. Den ausgeschaltet und die CButton auf CMFCButton umgeschrieben, und es geht.

    Danke für die Hilfe.

    • Als Antwort markiert Guido Franzke Donnerstag, 24. November 2016 07:40
    Donnerstag, 24. November 2016 07:40

Alle Antworten

  • Hallo Guido,

    Gibt die Funktion InitCommonControlsEx FALSE zurück? Wenn dem so ist, hoffe ich, dass folgender Thread Dir weiterhilft:
    How to enable common controls in a Windows app

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    • Als Antwort markiert Guido Franzke Donnerstag, 24. November 2016 07:39
    Dienstag, 22. November 2016 12:17
    Administrator
  • Die Grundsätzliche Fragre wäre erst einmal was der "alten XP-Stil" ist. MFC stellt sich nämlich nicht dar als blaue / oliv und silberne Fenster von sich aus. Die Ausnahme wäre man hat den MFC VisualManager in Gebrauch. Alles in allen sind die informationen recht spärlich. Ein Screenshot wäre zur visuellen Identifizierung vielleicht nicht schlecht gewesen?

    Meine Vermutung wäre der "alten XP-Stil" ist die GUI Optik aus Windows 2000, was in XP als "Classic Style" oder so umschrieben wurde. Wenn dem so wäre, dann ist es hilfreich, wenn man sein Projekt als UNICODE baut. Die ANSI Version der MFC unterstützt die Stile des DWM nicht mehr.


    Best regards

    Bordon

    Note: Posted code pieces may not have a good programming style and may not perfect. It is also possible that they do not work in all situations. Code pieces are only indended to explain something particualar.

    • Als Antwort markiert Guido Franzke Donnerstag, 24. November 2016 07:39
    Mittwoch, 23. November 2016 05:41
  • Der VisualManager ist das Problem. Den ausgeschaltet und die CButton auf CMFCButton umgeschrieben, und es geht.

    Danke für die Hilfe.

    • Als Antwort markiert Guido Franzke Donnerstag, 24. November 2016 07:40
    Donnerstag, 24. November 2016 07:40