000
17.09.2010, 09:57 Uhr
~torstenschw
Gast
|
Hallo,
leider habe ich zu meinem Problem keinen entsprechenden Forumbeitrag gefunden, also poste ich es hier mal:
Ich habe ein Programm zum Ansteueren einer CCD-Zeile (Auslesen und Anzeigen des Spektrums). Bei bestimmten Funktionen möchte ich, dass nach Aufnahme des Spektrums (wird dann auf dem Monitor angezeigt) beim Überfahren der Maus über dem Spektrum die Intensitätswerte des Pixels, bei dem sich die Maus gerade befindet, angezeigt wird. Dazu habe ich bis jetzt OnMouseMove() verwendet und die über GetCursorPos() die entsprechenden Koordinaten eingelesen. Das funktioniert auch wunderbar, nur läuft ja OnMouseMove ständig bei der Message WM_MOUSEMOVE. Das will ich aber nicht. Es soll nur dann laufen, wenn ich mit einem bestimmten Programmteil fertig bin. Ich will diese Funktion also irgendwie starten und stoppen können.
Das ist das eine Problem (das wohl leichtere?). Das andere ist: bei einer Funktiion hole lese ich fortlaufend die Spektren der CCD aus und lasse sie anzeigen. Zum Aulesen und Anzeigen benutze ich Threads, da das ganze im Millisekunden-Bereich abläuft. Hier will ich jetzt auch die OnMouseMove() verwenden, um zum Beispiel den Intensitätsverlauf eines Pixels nachvollziehen zu können (für Justagezwecke z.B.). Wie kann ich das hier am besten realisieren? OnMouseMove() und Anzeige der Intensität des einen Pixels sollten nicht zu viele Systemressourcen verbrauchen. Ich dachte da vielleicht an einen Timer, den man dafür starten könnte --> alle 100ms meinetwegen OnMouseMove oder besser nur die Cursor-Posiion abfragen, da ja oft der Mauszeiger dann auf dem einen Pixel verweilt.
Ich hoffe, ich konnte meine Probleme und möglichen Lösungsansätze hinreichend schildern. Wie würdet ihr das machen! Ich wäre sehr dankbar für jeden Tipp. |