none
CLR,MFC,C++ Anwendung - Style eines Windows RRS feed

  • Frage

  • Hallo,

    ich habe eine C# Anwendung, diese ruft aus einer DLL eine WinForm auf.
         Erscheinungsbild, wie gewünscht!
     
    Jetzt habe ich eine CLR,MFC,C++ Anwendung, diese ruft aus einer DLL eine WinForm auf.
         Erscheinungsbild, nicht wie gewünscht!
      Sieht anders aus als eine reine C# App.
     
    Was ist zu tun? Styles?
    Wenn ja, wie und wo?

    Viele Grüße Sandra

    Dienstag, 21. April 2015 19:41

Antworten

Alle Antworten

  • Hi,

    wie wär es mit hilfreichen Infos? Bspw. Screenshots, damit man die Unterschiede sehen kann? Und evtl. etwas Code.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Dienstag, 21. April 2015 20:55
    Moderator
  • wie wär es mit hilfreichen Infos? Bspw. Screenshots, damit man die Unterschiede sehen kann? Und evtl. etwas Code.



    Hallo Stefan,

    Editfelder und Buttons wirken anders.
    C# - eher rund
    C++ - eher eckig

    Sicher sind es vermutlich Einstellungen, nur wo?
    Man kann auch beim Anlegen die Styles wählen, was immer dann da richtig ist, im nachhinein zu ändern wäre.

    Liebe Grüße Sandra




    • Bearbeitet Sandra Maier Donnerstag, 23. April 2015 08:11 Format
    Mittwoch, 22. April 2015 08:30
  • Hallo Sandra,

    das eine ist der Standardstil von Windows 7, das andere der Classic Stil von Windows (mehr oder weniger Windows 2000).

    Die Frage ist hier nun, wie du die Anwendung aufrufst. Normalerweise deklariert man den zu verwendenden Stil in der Anwendung selbst. Da es sich wohl um die selbe Anwendung handelt, muss der Unterschied beim Aufruf liegen. Zeige daher bitte deinen C++ Code um das Programm zu öffnen.


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Mittwoch, 22. April 2015 14:24

  • Die Frage ist hier nun, wie du die Anwendung aufrufst. Normalerweise deklariert man den zu verwendenden Stil in der Anwendung selbst. Da es sich wohl um die selbe Anwendung handelt, muss der Unterschied beim Aufruf liegen. Zeige daher bitte deinen C++ Code um das Programm zu öffnen.



    BOOL CTraceSimulationCPPApp::InitInstance()
    {
    	// 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;
    	InitCommonControlsEx(&InitCtrls);
    
    	CWinApp::InitInstance();
    
    	


    C#

    try { MSSystem->Mark();

    // ** ruft den C# Dialog(WinForm) auf. } catch (System::Exception ^exMy) { CString sHelp; sHelp.Format("%s", exMy->Message); String ^strException = gcnew String(sHelp); throw(gcnew System::Exception(strException)); } finally

    Hallo Tom,

    siehst Du was? Welche Datei konkret?

    Liebe Grüße Sandra


    • Bearbeitet Sandra Maier Donnerstag, 23. April 2015 08:13 Format
    Mittwoch, 22. April 2015 14:46
  • Hallo Sandra,

    ich habe deine Frage anfangs etwas falsch verstanden. Ich habe so etwas noch nicht mit C++ und .NET vermischt probiert.

    Ich vermute, dass hier die C++ Anwendung den Stil des .NET Fensters steuert. In WinForms Anwendungen wird dafür folgende Methode vor dem Anzeigen eines Fensters aufgerufen:

    Application.EnableVisualStyles();

    Ob das in C++ auch hilft weiß ich nicht.

    PS: Dein als C# bezeichneter Code sieht eher nach C++/CLI aus.


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    • Als Antwort markiert Sandra Maier Donnerstag, 23. April 2015 08:11
    Mittwoch, 22. April 2015 15:11
  • Application.EnableVisualStyles();

    Ob das in C++ auch hilft weiß ich nicht.

    PS: Dein als C# bezeichneter Code sieht eher nach C++/CLI aus.


    Hallo Tom,

    ja hast Recht. C++ CLI Code, das dann eine C#Assembly aufruft.

    Test es heute im Laufe des Tages testen. Jetzt weiß ich mal, nach was zu suchen ist. Danke. https://www.c-plusplus.net/forum/259325-full

    Und es geht, wenn man es weiß 2 Minuten. DANKE nochmals.

    Grüße Sandra

    io
    • Bearbeitet Sandra Maier Donnerstag, 23. April 2015 08:10 Format
    Donnerstag, 23. April 2015 06:26