Article View: de.comp.lang.c++
Article #581Re: BitBlt mit BC++ für Windows - paltest.cpp (0/1)
From: Karl-Heinz Krause
Date: Sun, 15 Oct 1995 14:29
Date: Sun, 15 Oct 1995 14:29
38 lines
2210 bytes
2210 bytes
Am 12. Okt 1995 schrieb Falk Hennicke (fh2@irz.inf.tu-dresden.de): > Hallo bzw. Hilfe! > Ich programmiere gerade unter BC++ 3.1 für Windows und versuche eine > 256-Farben-Bitmap zu laden und mit BitBlt darzustellen. Klappt mit > 64K-Farben-Treiber auch einwandfrei, unter 256 Farben werden entweder > zuwenig Farben dargestellt oder in der falschen Palette, jedenfalls sieht > das Bild nicht zufriedenstellend aus. Es klappt nicht mal mit einer 16- > Farben-Bitmap richtig, das würde mir aber zur Not schon reichen. Eine 256-Farben-Bitmap mit BitBlt darzustellen, ist nicht zu empfehlen. Das funktioniert zwar bei True-Color-Treibern, bei palettenbasierten Treibern werden jedoch die Farben falsch dargestellt, und das gilt auch für 16-Farben-Bitmaps, wenn diese andere als die 20 Standard-Farben benutzen. Ich nehme einmal an, die Bitmap ist als Resource gespeichert. Man sollte sie dann nicht mit LoadBitmap laden und mit BitBlt ausgeben, sondern die Funktionen für DIBs (device independent bitmaps) benutzen. Geladen wird die Bitmapresource mit FindResource/LoadResorce/ LockResource. Man erhält dann einen Speicherblock mit einer BITMAPINFO- Struktur gefolgt von der eigentlichen Bitmap. Zum Anzeigen benutzt man SetDIBitsToDevice Außerdem ist es wichtig, daß das Programm eine eigene Palette realisiert. Die Farben dieser Palette müssen aus der BITMAPINFO entnommen werden. Programme, die eine Palette realisieren, sollten auch die Botschaften WM_QUERYNEWPALETTE und WM_PALETTECHANGED bearbeiten. Zur Illustration füge ich noch ein Programmfragment zu und hoffe, Dir geholfen zu haben. Karl-Heinz Krause
Technical Details
Message-ID:
<45r5t4$pr5@news00.btx.dtag.de>Path:
arc1-ca.pugleaf.net!news00.btx.dtag.de!not-for-mailReferences:
<45inaa$6hl@irz411.inf.tu-dresden.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news00.btx.dtag.de!not-for-mail From: Krause@btx.dtag.de (Karl-Heinz Krause) Newsgroups: de.comp.lang.c++ Subject: Re: BitBlt mit BC++ für Windows - paltest.cpp (0/1) Date: 15 Oct 1995 14:29:56 GMT Organization: Telekom Online Internet Gateway Message-ID: <45r5t4$pr5@news00.btx.dtag.de> References: <45inaa$6hl@irz411.inf.tu-dresden.de> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Sender: 0913148778-0001@btx.dtag.de (Karl-Heinz Krause) X-Newsreader: Forte Free Agent 1.0.82