Ich habe einen Dialog in einer Ressourcendatei definiert. Es verwendet jedoch die Windows 95-Stilschaltflächen und dergleichen. Wie verwende ich visuelle Themen (d. H. Solche, die in XP und später hinzugefügt wurden) für diese Steuerelemente?Wie erhalte ich visuelle Designs in Win32-Dialogen, die aus Ressourcendateien generiert wurden?
Antwort
Sie müssen eine Manifestdatei in die ausführbare Datei einbetten, die Windows mitteilt, dass Sie die Version der Steuerelemente mit aktivierten Themen benötigen (there's MSDN documentation specifically for this topic). Dies ist wirklich aus Kompatibilitätsgründen, weil some people really like to write programs that mess around with the internal data structures of other programs.
in Visual C++, wahrscheinlich der einfachste Weg, dies zu tun ist über eine #pragma
:
#pragma comment(linker,"/manifestdependency:\"" \
"type='win32' " \
"name='Microsoft.Windows.Common-Controls' " \
"version='6.0.0.0' " \
"processorArchitecture='*' " \
"publicKeyToken='6595b64144ccf1df' " \
"language='*'\"")
Dieser den Linker verursacht, so etwas zu der generierten Manifest-Datei hinzufügen:
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*" />
</dependentAssembly>
</dependency>
Sie müssen Sie auch InitCommonControlsEx()
aufrufen, um die entsprechenden Steuerelementklassen zu registrieren, oder das Dialogfeld wird nicht angezeigt.
Wie Mark Ransom in den Kommentaren erwähnt, Windows 2000 ignores theming manifests, so sollte dies noch in Windows 2000, Windows XP und später funktionieren. Außerdem definieren einige Frameworks wie MFC #pragma
und führen die Initialisierung für Sie durch.
- 1. Es wurden keine Ressourcendateien für die Lokalisierung in swift gefunden
- 2. Wie kann ich prüfen, ob PDF-Dateien korrekt generiert wurden?
- 3. Zeilenprozentwerte in Kreuztabelle, die aus summary() aus dem Hmisc-Paket generiert wurden
- 4. Wie werden arabische Strings aus RTL in PDF angezeigt, die mit itext 7 API generiert wurden?
- 5. Wie erstelle ich ICU-Ressourcendateien für die Verwendung in PHP?
- 6. Wie kann ich Thumbnails erzeugen, die im laufenden Betrieb in PHP generiert wurden?
- 7. Wie erhalte ich den Namen einer Datei, die mit einem Stream in C# generiert wurde?
- 8. Ich erhalte 2 verschiedene Zeilenzahlen aus derselben Anweisung, die an verschiedenen Stellen ausgeführt wurden
- 9. Assetic generiert mehrere CSS-Dateien, die gelöscht wurden
- 10. Wie man über Pandas Series iteriert, die aus groupby(). Size() generiert wurden
- 11. Wie füge ich Währungssymbole in pdf ein, die von meiner Anwendung generiert wurden?
- 12. Wie beschränke ich Felder, die aus verwandten Sammlungen abgerufen wurden?
- 13. Wie berechne ich Zeitwerte, die aus Excel importiert wurden?
- 14. Wie erhalte ich die Titel aus diesen JSON-Ergebnissen?
- 15. Wie finde ich den Speicherort von automatischen S3-Backups, die von Amazon RDS generiert wurden?
- 16. Rails: Wie suche ich Tags, die von Act_As_Taggable_On mit PG_Search generiert wurden? (postgresql)
- 17. SCons Abhängigkeit von Dateien, die zur Kompilierungszeit generiert wurden
- 18. Wie erhalte ich die Computernamen in .NET
- 19. Randbreite bei QR-Codes reduzieren, die von ZXing generiert wurden?
- 20. Fehler bei Dateien, die mit SubSonic's SubCommander-Tool generiert wurden
- 21. Wie kann ich SQL-Skripts überschreiben, die von MigratorScriptingDecorator generiert wurden
- 22. Wie Sie die Cross Site Scripting Sicherheitswarnung in Schienen, die von Bremer generiert wurden, beheben?
- 23. Wie man die Anzahl der Parkettdateien steuert, die bei der Verwendung von partitionBy generiert wurden
- 24. Visuelle Defekte, wenn ich drawBitmap()
- 25. Wie lösche ich temporäre Dateien (Bereinigung), die von einem Java-Programm generiert wurden?
- 26. Die Auswirkungen des Designs auf die Anwendungslaufzeit
- 27. Wie erhalte ich die Zeitzone eines Benutzers?
- 28. Wie funktionieren visuelle Programmiersprachen?
- 29. Wie erhalte ich eine Liste von ASP.NET-Ereignissen, die bis zu einem Breakpoint ausgelöst wurden?
- 30. Funktioniert iTextSharp mit Bitmap-Objekten, die nicht aus einer Datei generiert wurden?
Wird die Abhängigkeit von der Version "6.0.0.0" im Manifest-Break unter Windows 2000 hinzugefügt? –
Ich finde, dass das alles für mich getan wird, wenn ich ein neues MFC-Projekt erstelle. Die '# Pragma' sind in' stdafx.h' und die 'InitCommonControlsEx' in' InitInstance'. –
Manifeste werden von Windows 2000 ignoriert, Sie müssen also nur die richtigen Initialisierungsaufrufe ausführen. http://msdn.microsoft.com/en-us/library/ff563660%28v=vs.85%29.aspx –