Benutzer mit den meisten Antworten
CLR,MFC,C++ Anwendung - Style eines Windows

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
Antworten
-
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
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 -
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 eckigSicher 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
-
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 -
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
-
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
-
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
- Bearbeitet Sandra Maier Donnerstag, 23. April 2015 08:10 Format