🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.lang.c++
3 messages
3 total messages Started by Falk Hennicke Thu, 12 Oct 1995 09:31
BitBlt mit BC++ für Windows
#557
Author: Falk Hennicke
Date: Thu, 12 Oct 1995 09:31
19 lines
1385 bytes

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.

Wer kann helfen?
Bitte pm an mich. Danke

.------------------------+---------------------------------------------.
| Falk Hennicke          |   E-Mail: fh2@irz301.inf.tu-dresden.de      |
+------------------------+---------------------------------------------+
|            Anhalter machen 's besser !!!!!!!!!!!!!!!!                |
`----------------------------------------------------------------------'
Re: BitBlt mit BC++ für Windows - paltest.cpp (0/1)
#581
Author: 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
Re: BitBlt mit BC++ für Windows - paltest.cpp (1/1)
#582
Author: Karl-Heinz Krause
Date: Sun, 15 Oct 1995 14:30
100 lines
6676 bytes
begin 644 paltest.cpp
M+R\@4')O9W)A;6T@0FET;6%P=&5S=`T*#0HC:6YC;'5D92`\=VEN9&]W<RYH
M/@T*#0IC:&%R(%!R;V=.86UE6UT@/2`B0FET;6%P=&5S="([#0H-"F5X=&5R
M;B!(24Y35$%.0T4@7VA);G-T86YC93L@("`@+R\@9G5N:W1I;VYI97)T(&YU
M<B!B96D@0D,@9OQR(%=I;C$V#0H-"B\O(&1I92!":71M87!R97-O=7)C93H-
M"DA'3$]"04P@0FET;6%P4F5S(#T-"B`@("!,;V%D4F5S;W5R8V4@*%]H26YS
M=&%N8V4L($9I;F1297-O=7)C92`H7VA);G-T86YC92P@(E1E<W1":71M87`B
M+"!25%]"251-05`I*3L-"@T*0DE434%024Y&3TA%041%4B!B:6@[("`@+R\@
M96YT:.1L="!D:64@0F%S:7-D871E;B!D97(@0FET;6%P#0II;G0@9F%R8F5N
M.R`@("`@("`@("`@("`O+R!!;GIA:&P@9&5R(%!A;&5T=&5N96ET<N1G90T*
M2%!!3$545$4@<&%L971T93L@("`@("`@+R\@9&EE(%!A;&5T=&4-"@T*+R\@
M56UR96-H;G5N9R!D97(@1F%R8G=E<G1E(&%U<R!D97(@0DE434%024Y&3RU3
M=')U:W1U<@T*+R\@:6X@4&%L971T965I;G1RY&=E.@T*:6YL:6YE('9O:60@
M4D="5&]092`H4$%,1514145.5%)9("9P92P@4D="455!1"!Q*0T*>PT*("`@
M('!E+G!E4F5D(#T@<2YR9V)2960[#0H@("`@<&4N<&5'<F5E;B`]('$N<F=B
M1W)E96X[#0H@("`@<&4N<&5";'5E(#T@<2YR9V)";'5E.PT*("`@('!E+G!E
M1FQA9W,@/2`P.PT*?0T*#0HO+R!B97)E8VAN970@9&EE($)A<VES9&%T96X@
M9&5R($)I=&UA<"!U;F0@:6YI=&EA;&ES:65R="!D:64@4&%L971T93H-"G9O
M:60@26YI=%!A;&5T=&4H*0T*>PT*("`@($Q00DE434%024Y&3R!P8FD@/2`H
M3%!"251-05!)3D9/*4QO8VM297-O=7)C92A":71M87!297,I.PT*("`@(&)I
M:"`]('!B:2T^8FUI2&5A9&5R.PT*#0H@("`@+R\@06-H='5N9R$@1&%S(&9O
M;&=E;F1E(&9U;FMT:6]N:65R="!N:6-H="!M:70@,C0M0FET+4UA<',N#0H@
M("`@+R\@9&EE<V5R($9A;&P@;?S?=&4@9V5S;VYD97)T(&)E:&%N9&5L="!W
M97)D96XN#0H@("`@:68@*&)I:"YB:4-L<E5S960I(&9A<F)E;B`](&)I:"YB
M:4-L<E5S960[#0H@("`@96QS92!F87)B96X@/2`Q(#P\(&)I:"YB:4)I=$-O
M=6YT.PT*#0H@("`@3$]'4$%,151412`J;'`@/2`H3$]'4$%,151412HI3&]C
M86Q!;&QO8R`H3$U%35]&25A%1"P-"B`@("`@("`@("`@("`@("`@("`@("`@
M('-I>F5O9BA,3T=004Q%5%1%*2`K("AF87)B96XM,2DJ<VEZ96]F*%!!3$54
M5$5%3E1262DI.PT*#0H@("`@;'`M/G!A;%9E<G-I;VX@/2`P>#,P,#L-"B`@
M("!L<"T^<&%L3G5M16YT<FEE<R`](&9A<F)E;CL-"B`@("!F;W(@*&EN="!I
M/3`[(&D@/"!F87)B96X[(&DK*RD-"B`@("`@("`@4D="5&]092`H;'`M/G!A
M;%!A;$5N=')Y6VE=+"!P8FDM/F)M:4-O;&]R<UMI72D[#0H-"B`@("!P86QE
M='1E(#T@0W)E871E4&%L971T92`H;'`I.PT*#0H@("`@3&]C86Q&<F5E*&QP
M*3L-"B`@("!5;FQO8VM297-O=7)C92A":71M87!297,I.PT*?0T*#0HO+R!Z
M96EC:&YE="!D:64@0FET;6%P.@T*=F]I9"!086EN=$)I=&UA<"`H2$1#(&1C
M*0T*>PT*("`@($Q00DE434%024Y&3R!P8FD@/2`H3%!"251-05!)3D9/*4QO
M8VM297-O=7)C92A":71M87!297,I.PT*("`@($Q00EE412!B:71S(#T@3%!"
M651%*'!B:2D@*R!S:7IE;V8H0DE434%024Y&3TA%041%4BD@*R!F87)B96XJ
M<VEZ96]F*%)'0E%5040I.PT*("`@(%-E=$1)0FET<U1O1&5V:6-E("AD8RP@
M,"P@,"P@8FEH+F)I5VED=&@L(&)I:"YB:4AE:6=H="P@,"P@,"P@,"P-"B`@
M("`@("`@("`@("`@("`@("`@("`@(&)I:"YB:4AE:6=H="P@8FET<RP@<&)I
M+"!$24)?4D="7T-/3$]24RD[#0H@("`@56YL;V-K4F5S;W5R8V4H0FET;6%P
M4F5S*3L-"GT-"@T*+R\@9&EE($9E;G-T97)F=6YK=&EO;CH-"DQ215-53%0@
M0T%,3$)!0TL@=VYD<')O8R`H2%=.1"!W;F0L(%5)3E0@;7-G+"!74$%204T@
M=RP@3%!!4D%-(&PI#0I[#0H@("`@<W=I=&-H*&US9RD@>PT*("`@("`@("!C
M87-E(%=-7T-214%413H-"B`@("`@("`@("`@($EN:71086QE='1E*"D[#0H@
M("`@("`@("`@("!R971U<FX@,#L-"@T*("`@("`@("!C87-E(%=-7T1%4U12
M3UDZ#0H@("`@("`@("`@("!$96QE=&5/8FIE8W0@*'!A;&5T=&4I.R`@("`@
M+R\@4&%L971T92!B96D@4')O9W)A;6UE;F1E(&SV<V-H96X-"B`@("`@("`@
M("`@($9R965297-O=7)C92`H0FET;6%P4F5S*3L-"B`@("`@("`@("`@(%!O
M<W11=6ET365S<V%G92@P*3L-"B`@("`@("`@("`@(')E='5R;B`P.PT*#0H@
M("`@("`@(&-A<V4@5TU?455%4EE.15=004Q%5%1%.B![("`@("`@+R\@4&%L
M971T92!R96%L:7-I97)E;BP@=V5N;@T*("`@("`@("`@("`@2$1#(&1C(#T@
M1V5T1$,H=VYD*3L@("`@("`@("\O(&UA;B!D96X@1F]C=7,@97)HY&QT+@T*
M("`@("`@("`@("`@2%!!3$545$4@86QT<&%L971T92`](%-E;&5C=%!A;&5T
M=&4@*&1C+"!P86QE='1E+"`P*3L-"B`@("`@("`@("`@(&EF("A296%L:7IE
M4&%L971T92AD8RDI($EN=F%L:61A=&5296-T("AW;F0L(#`L(#$I.PT*("`@
M("`@("`@("`@4V5L96-T4&%L971T92`H9&,L(&%L='!A;&5T=&4L(#`I.PT*
M("`@("`@("`@("`@4F5L96%S941#("AW;F0L(&1C*3L-"B`@("`@("`@("`@
M(')E='5R;B`Q.PT*("`@("`@("!]#0H-"B`@("`@("`@8V%S92!735]004Q%
M5%1%0TA!3D=%1#H@("`@("`@("`O+R!&87)B:V]R<F5K='5R96X@9F%L;',@
M4&%L971T90T*("`@("`@("`@("`@:68@*'=N9"`A/2!(5TY$*'<I*2![("`@
M("`@("\O('9O;B!A;F1E<F5M(%!R;V=R86UM#0H@("`@("`@("`@("`@("`@
M2$1#(&1C(#T@1V5T1$,H=VYD*3L@("`@+R\@=F5RY&YD97)T('=U<F1E#0H@
M("`@("`@("`@("`@("`@2%!!3$545$4@86QT<&%L971T92`](%-E;&5C=%!A
M;&5T=&4@*&1C+"!P86QE='1E+"`P*3L-"B`@("`@("`@("`@("`@("!296%L
M:7IE4&%L971T92AD8RD[#0H@("`@("`@("`@("`@("`@57!D871E0V]L;W)S
M*&1C*3L-"B`@("`@("`@("`@("`@("!396QE8W1086QE='1E("AD8RP@86QT
M<&%L971T92P@,"D[#0H@("`@("`@("`@("`@("`@4F5L96%S941#("AW;F0L
M(&1C*3L-"B`@("`@("`@("`@('T-"B`@("`@("`@("`@(')E='5R;B`P.PT*
M#0H@("`@("`@(&-A<V4@5TU?4$%)3E0Z('L-"B`@("`@("`@("`@(%!!24Y4
M4U1254-4('!S.PT*("`@("`@("`@("`@0F5G:6Y086EN="`H=VYD+"`F<',I
M.PT*("`@("`@("`@("`@2%!!3$545$4@86QT<&%L971T92`](%-E;&5C=%!A
M;&5T=&4@*'!S+FAD8RP@<&%L971T92P@,"D[#0H@("`@("`@("`@("!086EN
M=$)I=&UA<"`H<',N:&1C*3L-"B`@("`@("`@("`@(%-E;&5C=%!A;&5T=&4@
M*'!S+FAD8RP@86QT<&%L971T92P@,"D[#0H@("`@("`@("`@("!%;F1086EN
M="`H=VYD+"`F<',I.PT*("`@("`@("`@("`@<F5T=7)N(#`[#0H@("`@("`@
M('T-"B`@("!]#0H@("`@<F5T=7)N($1E9E=I;F1O=U!R;V,@*'=N9"P@;7-G
M+"!W+"!L*3L-"GT-"@T*=F]I9"!296=I<W1E<B@I#0I[#0H@("`@5TY$0TQ!
M4U,@=V,@/2![#0H@("`@("`@(#`L#0H@("`@("`@('=N9'!R;V,L#0H@("`@
M("`@(#`L#0H@("`@("`@(#`L#0H@("`@("`@(%]H26YS=&%N8V4L#0H@("`@
M("`@($QO861)8V]N("A?:$EN<W1A;F-E+"`B4')O9W)A;4EC;VXB*2P-"B`@
M("`@("`@3&]A9$-U<G-O<B`H,"P@241#7T%24D]7*2P-"B`@("`@("`@2$)2
M55-(*$-/3$]27U=)3D1/5RLQ*2P-"B`@("`@("`@(E!R;V=R86UM365N=2(L
M#0H@("`@("`@(%!R;V=.86UE#0H@("`@?3L-"@T*("`@(%)E9VES=&5R0VQA
M<W,H)G=C*3L-"GT-"@T*:6YT(%!!4T-!3"!7:6Y-86EN("A(24Y35$%.0T4L
M($A)3E-404Y#12!P<F5V+"!,4%-44BP@:6YT('-H;W<I#0I[#0H@("`@:68@
M*"%P<F5V*2!296=I<W1E<B@I.PT*#0H@("`@2%=.1"!W;F0@/2!#<F5A=&57
M:6YD;W<@*%!R;V=.86UE+"!0<F]G3F%M92P-"B`@("`@("`@("`@("`@("`@
M("`@5U-?3U9%4DQ!4%!%1%=)3D1/5R!\(%=37U9)4TE"3$4L#0H@("`@("`@
M("`@("`@("`@("`@($-77U53141%1D%53%0L('-H;W<L#0H@("`@("`@("`@
M("`@("`@("`@($-77U53141%1D%53%0L(#`L#0H@("`@("`@("`@("`@("`@
M("`@(#`L(#`L(%]H26YS=&%N8V4L(#`I.PT*#0H@("`@:68@*"%W;F0I(')E
M='5R;B`M,3L@("`@+R\@1F5N<W1E<B!K;VYN=&4@;FEC:'0@97)Z975G="!W
M97)D96X-"@T*("`@($U31R!M<V<[#0H-"B`@("!W:&EL92`H1V5T365S<V%G
M92`H)FUS9RP@,"P@,"P@,"DI('L-"B`@("`@("`@5')A;G-L871E365S<V%G
M92@F;7-G*3L-"B`@("`@("`@1&ES<&%T8VA-97-S86=E*"9M<V<I.PT*("`@
A('T-"@T*("`@(')E='5R;B!M<V<N=U!A<F%M.PT*?0T*
`
end
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads