FighterFigger Geschrieben 25. November 2002 Geschrieben 25. November 2002 hmmmmmpf ... Hallo liebe Gemeinde. Ich programmiere seit einiger Zeit in C++ mit MFC-Unterstützung, und habe ein Problem. Beschreibung der Anwendung: Ein Feld (Matrix) an Werten (zB: Helligkeit oder Temperatur) soll in einer SDI auf dem schönen, weißen Hintergrund gebracht werden. Jeder Wert hat seine Farbe (Graustufen). Es entsteht eine graue 'Mondlandschaft'. Problem: Ich will die Punkte nicht einzeln setzen (beim Stretchen sogar als Rechtecke) sondern die CBitmap-Klasse verwenden. Das Problem ist, daß ich weder eine Ressource noch eine Datei habe, sondern ein Datenfeld. Dieses kann ich mit CreateBitmapIndirect in ein Bitmap wandeln - oder? Mein Ergebnis: Er zeigt nichts an. Alles weiß. Wenn ich eine Ressource angebe, zeigt er was. Also: Meine Zuweisungen an den DeviceContext ist richtig ... es muß bei der Erstellung des Bitmaps liegen. Frage: Habt ihr sachdienliche Hinweise? Ich habe schon x Seiten durchlesen - kennt ihr eine (x+1)te Seite? Hilfe .... :eek: Zitieren
Crush Geschrieben 25. November 2002 Geschrieben 25. November 2002 Schau mal nach unter dem Stichwort: CreateCompatibleDC() Zitieren
FighterFigger Geschrieben 27. November 2002 Autor Geschrieben 27. November 2002 Jo ... also: (danke erstmal ... ) Ich habe meinen Fahler gefunden, was ihr nicht konntet, weil ihr meinen Code nicht hattet. Ich gebe ihm bei CreateBitmap explizit nochmal die BitFarbTiefe (pro Pixel) mit, und anstatt daß der dann damit arbeitet, erstellt er das Bild trotzdem nur, wenn diese Zahl mit der aktuellen Device-Farbtiefe UND dem Datentyp des Bild-Daten-Arrays überein stimmt. Da frage ich mich natürlich, wozu ich ihm das überhaupt übergeben muß, aber das klappt nun. Bei CreateCompatibleBitmap {BOOL CreateCompatibleBitmap( CDC* pDC, int nWidth, int nHeight);} habe ich wohl verpaßt, wo ich da den Verweis auf die Bitmapdaten lege, deshalb habe ich da nicht weiter gesucht, werde dies aber sofort wiederholen. Noch etwas: Kennt sich jemand mit CDC::SetColorAdjustment {BOOL SetColorAdjustment( const COLORADJUSTMENT* lpColorAdjust);} aus? ... Ich weiß, daß das nur mit WinNT richtig geht, aber das das nur mit 16-Bit-Farben läuft, steht nirgens. Bei mir verhält es sich aber so ... sowohl die Microsoft-Demo (Halftone.exe) als auch mein Programm. Kann es sein, daß bei 32Bit kein Halftone zieht? ... wäre ja schrecklich ... schöne Grüße ... Volker Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.