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
Author: Falk Hennicke
Date: Thu, 12 Oct 1995 09:31
Date: Thu, 12 Oct 1995 09:31
19 lines
1385 bytes
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)
Author: 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
Re: BitBlt mit BC++ für Windows - paltest.cpp (1/1)
Author: Karl-Heinz Krause
Date: Sun, 15 Oct 1995 14:30
Date: Sun, 15 Oct 1995 14:30
100 lines
6676 bytes
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*2S
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