OVH Cloud OVH Cloud

::RealizePalette qui retourne 0

3 réponses
Avatar
Jean-Yves
Bonjour,

Je crée une palette de 2 couleurs, puis je selectionne ma palette dans le
device contexte memoire et je fais un ::RealizePalette sur le device context
memoire. Là le code de retour est 0 alors que je m'attendais à 2 (nombre de
couleurs mappé). Y-a-t-il une raison à cela ?

Merci pour vos idées.

Jean-Yves

3 réponses

Avatar
Christian ASTOR
Jean-Yves wrote:


Je crée une palette de 2 couleurs, puis je selectionne ma palette dans le
device contexte memoire et je fais un ::RealizePalette sur le device context
memoire. Là le code de retour est 0 alors que je m'attendais à 2 (nombre de
couleurs mappé). Y-a-t-il une raison à cela ?



RealizePalette() ne marche pas en mode non-"palette-based"
(GetDeviceCaps(hC, RASTERCAPS) & RC_PALETTE)
(si > 256 couleurs par ex)
Avatar
Jean-Yves
> > Je crée une palette de 2 couleurs, puis je selectionne ma palette dans


le
> device contexte memoire et je fais un ::RealizePalette sur le device


context
> memoire. Là le code de retour est 0 alors que je m'attendais à 2 (nombre


de
> couleurs mappé). Y-a-t-il une raison à cela ?

RealizePalette() ne marche pas en mode non-"palette-based"
(GetDeviceCaps(hC, RASTERCAPS) & RC_PALETTE)
(si > 256 couleurs par ex)



Merci pour la réponse. Effectivement je suis en couleurs vraies 32 bits.
En fait j'utilise le RealizePalette pour creer un CBitmap à partir d'un DIB
monochrome (1 bit par pixel avec une palette de 2 couleurs) que je dessine
dans un buffer mémoire.
Voyez-vous une autre façon de faire ?
Avatar
Vincent Burel
"Jean-Yves" wrote in message
news:dmhto6$34u$
> > Je crée une palette de 2 couleurs, puis je selectionne ma palette dans
le
> > device contexte memoire et je fais un ::RealizePalette sur le device
context
> > memoire. Là le code de retour est 0 alors que je m'attendais à 2


(nombre
de
> > couleurs mappé). Y-a-t-il une raison à cela ?
>
> RealizePalette() ne marche pas en mode non-"palette-based"
> (GetDeviceCaps(hC, RASTERCAPS) & RC_PALETTE)
> (si > 256 couleurs par ex)

Merci pour la réponse. Effectivement je suis en couleurs vraies 32 bits.
En fait j'utilise le RealizePalette pour creer un CBitmap à partir d'un


DIB
monochrome (1 bit par pixel avec une palette de 2 couleurs) que je dessine
dans un buffer mémoire.
Voyez-vous une autre façon de faire ?



Par exemple, a l'affichage, vous définissez la couleur de vos "1" dans votre
bitmap en selectionnant un BRUSH dans la dc_target (la dc target pouvant
etre l'écran comme celle d'un image compatible avec la résolution actuelle).
et vous utilisez bitblt pour afficher votre bitmap binaire avec un
MERGE_COPY ou autre code plus intelligents si vous voulez que votre noir
soit transparent...

Amusez vous bien.
VB