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
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