VB2005: Wie Bitmap-Zeichensatz statt DrawString auf PictureBox.Image anwenden

UTA2000

Grünschnabel
Hi,

Ich programmiere seit ca. einer Woche mit VB2005 Express. Ich arbeite momentan gerade an einem Programm welches mir den Inhalt einer PictureBox auf mein LCD (meiner G15-Tastatur) sendet. Am Ende soll das Programm im Hintergrund laufen und in festen Zeitabständen (ca. alle 30Sek) neue (WaKü-Temperatur-) Informationen anzeigen.

Die Übermittlung des PictureBox-Inhalts an das LCD klappt bereits problemlos: Ich prüfe jeden Pixel der PictureBox auf den Farbcode (kann nur schwarz oder weiß geben). Ist nicht gerade das performanteste (ich weiß), aber ich hab nix besseres und größere Probleme :)

Nun jedoch zu meinem Problem: Die dynamischen Temperatur-Informationen bekomme ich momentan per DrawString-Funktion an die gewünschte Position in der PictureBox. Nur sind alle Fonts entweder zu groß (JA, ich habe bereit sehr kleine Fonts aus dem Netz gezogen! :) ) oder unleserlich.

Bereits für dieses und auch folgende Projekte ist es also von großer Bedeutung, möglichst wenig Raum pro Buchstabe zu verbrauchen (LCD hat 160x43 Pixel, sw). Deshalb habe ich einen Bitmap-Font gebastelt (siehe Anhang).

Dieser Bitmap-Font legt je Buchstaben zwar eine feste Höhe (7px) aber eben keine feste Breite fest (ist einfach bei Buchstaben wie "W" oder "I" ein zu großer Unterschied).
Mein Wunsch ist nun, ein Wort nicht per DrawString auf die PictureBox zu bekommen, sondern stattdessen jeden Buchstaben aus dieser Bitmap-Datei "zu holen" und auf die PictureBox zu zeichnen.

Folgendes ist dabei unklar/ungelöst:
1. Wie kann ich möglichst einfach für jedes Zeichen eines Satzes sein Pendant im Bitmap finden?
Mir schwebt dabei momentan eine Lösung vor, bei der ich je Zeichen im Programmcode die Bitmap-Position (As Point) und Breite (As Byte) fest deklariere. Und dann jeden Satz in einzelne Zeichen zerlege, mir das Bitmap-Pendant hole und in die PictureBox zeichne.
Habt ihr ne bessere Idee für das generelle Vorgehen?

2. Mal voraus gesetzt, das mein oben beschriebenes Vorgehen das "richtige" wäre: Wie kann ich denn nur einen bestimmten Bereich aus einem Bild an eine bestimmte Position in eine PictureBox kopieren?
Sorry, falls das mit irgend einem Befehl eigentlich ganz einfach geht, wie gesagt, ich mach VB erst seit letzten Freitag. Und das Problem bei VB2005 ist, dass man die Klassen kennen muss, um die Möglichkeiten/Befehle zu kennen :)

UTA
 

Anhänge

  • 25737attachment.gif
    25737attachment.gif
    317 Bytes · Aufrufe: 13
Hi,

ich kann Dir zwar bei Deinem Problem nicht helfen, aber Du bist im falschen Forum... ;-)

Ich würde im NET Forum nochmal nachfragen.
 
Ups, sorry. Kann noch nicht klar die Grenze zwischen .NET und Visual Basic ziehen.

Dann werde ich dort das Problem mal posten.
Ist jetzt unter .NET gepostet. Dieser Beitrag kann geschlossen werden.

Sorry!

UTA
 
Zuletzt bearbeitet:
Zurück