🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #581

Re: BitBlt mit BC++ für Windows - paltest.cpp (0/1)

#581
From: Karl-Heinz Krause
Date: Sun, 15 Oct 1995 14:29
38 lines
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-mail
References: <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