Windows CE-Konfigurationsanwendung

Anpassen von Zeichensatz und Stil des statischen Textfelds

Um den geeigneten Zeichensatz für das statische Textfeld zur Anzeige der CNET-Konfiguration zu benutzen, habe ich die Methode WindowProc in den Klassen CPageTab implementiert. Ich habe die Nachricht WM_CTLCOLORSTATIC gesetzt und anschließend den aktuellen Zeichensatz und die Schriftfarbe geändert, so dass das Textfeld den Text wie gewünscht anzeigt.

WM_CTLCOLORSTATIC passiert das hDC und das hWnd des neu anzuzeigenden statischen Textfelds. Ich verwende diese Variablen als Argumente für die in Listing A dargestellte Funktion.

Wie Sie sehen, habe ich eine statische Variable zum ersten Erstellen des Zeichensatzes verwendet, wobei alle nachfolgenden Anzeigen mithilfe eines Pointers zu diesem Zeichensatz entstehen. Wenn Sie die Farbe und die Schriftart des Zeichensatzes beibehalten wollen, dürfen Sie lediglich die Methode WindowProc in den PropertyPages nicht überschreiben. Der gesamte übrige Code wird einwandfrei funktionieren.

Statt den Zeichensatz mit seiner Schriftart zu verwenden, hielt ich es für praktischer und dem OS angemessener, den System-Zeichensatz zu benutzen und diesen an die anderen Anwendungen der Windows CE Settings anzugleichen. Der Schriftsatz ist marineblau und entspricht, wie ich feststellte, unter Verwendung der oben aufgeführten Einstellungen farblich dem Rand eines aktiven Fensters.

Erstellen eines PropertySheet mit PropertyPages

Sie fragen sich vielleicht, wie ich das Eigenschaftsblatt erstellt und die Seiten zu ihm hinzugefügt habe. Ich habe ganz einfach den MFC ClassWizard zur Einrichtung vier unabhängiger Klassen verwendet, von denen eine von CPropertySheet und die drei anderen von CPropertyPage abgeleitet sind. In der Methode CWinApp::InitInstance fügte ich die Seiten zu dem Eigenschaftsblatt hinzu, wie in Listing B gezeigt.

Ich instantiierte die Objekte aus der Ableitung von CPropertySheet und CPropertyPage und nicht aus den Klassen CPropertySheet und CPropertyPage selbst.

Ich habe sämtliche Variablen des Stacks initialisiert und einfach die Seiten dem Blatt zugeordnet. Anschließend rief ich die Methode DoModal auf dem Eigenschaftsblatt auf, die sämtliche GUI-Interaktionen mit dem Benutzer handhabt.

Wenn InitInstance die Ausgabe FALSE erzeugt, führen die MFC die Windows-Message-Pump nicht aus. Ich könnte nun ein nicht modales Dialogfeld erzeugen, indem ich CPropertySheet::Create() statt CPropertySheet::DoModal() erstelle. In diesem Fall müsste ich TRUE ausgeben, so dass die Windows-Message-Pump die Nachrichten zur normalen Benutzer-Interaktion handhaben könnte. Wenn ich ein nicht modales Dialogfeld erstelle und die Ausgabe FALSE erzeuge, schließt die Anwendung den Vorgang.

Page: 1 2 3 4 5

ZDNet.de Redaktion

Recent Posts

Top-Malware im November: Infostealer Formbook bleibt Nummer 1

Sein Anteil an allen Infektionen steigt in Deutschland auf 18,5 Prozent. Das Botnet Androxgh0st integriert…

2 Wochen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome

Betroffen sind Chrome 131 und früher für Windows, macOS und Linux. Angreifer können unter Umständen…

2 Wochen ago

Data Analytics: Dienstleister wachsen zweistellig

Marktforscher Lündendonk erwartet für das Jahr 2025 ein durchschnittliches Umsatzwachstum von 14,9 Prozent.

2 Wochen ago

Open-Source-Malware auf Rekordniveau

Alarmierender Anstieg von Open-Source-Malware / Seit 2019 haben Sonatype-Analysen mehr als 778.500 bösartige Pakete aufgedeckt

2 Wochen ago

Bayerische KI-Agentur bietet KI-KOMPASS

Das KI-Werkzeug "BAIOSPHERE KI-KOMPASS" soll Unternehmen den Einstieg in KI erleichtern.

2 Wochen ago

Cloudflare: Weltweiter Internettraffic wächst 2024 um 17,2 Prozent

Das Wachstum konzentriert sich wie im Vorjahr auf das zweite Halbjahr. Google dominiert bei den…

2 Wochen ago