Partager via


CBrush::CreateDIBPatternBrush

Initialise un pinceau avec le modèle spécifié par un .dib (DIB).

BOOL CreateDIBPatternBrush(
   HGLOBAL hPackedDIB, 
   UINT nUsage  
); 
BOOL CreateDIBPatternBrush( 
   const void* lpPackedDIB, 
   UINT nUsage  
);

Paramètres

  • hPackedDIB
    Identifie un objet global de mémoire contenant un .dib compressé (DIB).

  • nUsage
    Spécifie si les champs de bmiColors[] de la structure de données de BITMAPINFO (une partie du fichier DIB « compressé ») contiennent des valeurs RVB ou des index explicites dans la palette logique actuel terminée. Le paramètre doit être l'une des valeurs suivantes :

    • DIB_PAL_COLORS la table des couleurs se compose d'un tableau d'index 16 bits.

    • DIB_RGB_COLORS la table des couleurs contient des valeurs littérales RVB.

  • lpPackedDIB
    Pointe vers un fichier DIB compressé comprenant structure BITMAPINFO immédiatement suivie d'un tableau d'octets en définissant les pixels de la bitmap.

Valeur de retour

Une valeur différente de zéro si l'opération a réussi ; sinon 0.

Notes

Le pinceau peut ensuite être sélectionné pour tout contexte de périphérique qui prend en charge les opérations rasters.

Les deux versions diffèrent de la façon dont vous gérez fichier DIB :

  • Dans la première version, pour obtenir un handle vers le fichier DIB vous appelez la fonction de GlobalAlloc windows pour allouer un bloc de mémoire globale puis remplissez mémoire DIB compressé.

  • Dans la deuxième version, il n'est pas nécessaire d'appeler GlobalAlloc pour allouer de la mémoire pour le fichier DIB compressé.

Un fichier DIB compressé se compose d'une structure de données d' BITMAPINFO immédiatement suivie du tableau d'octets qui définit les pixels de la bitmap. Les bitmaps utilisées comme schémas de remplissage doivent être de 8 pixels par 8 pixels. Si la bitmap est supérieure, les fenêtres crée un schéma de remplissage seulement les bits correspondant aux 8 premières lignes et des colonnes à 8 pixels dans l'angle supérieur gauche de la bitmap.

Lorsqu'une application sélectionne un pinceau de modèle DIB de deux couleurs dans un contexte monochrome de périphérique, les fenêtres ignore les couleurs spécifiées dans le fichier DIB et affiche à la place le pinceau de modèle à l'aide de le texte et les couleurs d'arrière-plan actuel du contexte de périphérique. Les pixels mappés à la première couleur (offset à 0 dans la table des couleurs du fichier DIB) du fichier DIB sont affichés à l'aide de la couleur de texte. Les pixels mappés à la deuxième couleur (offset à 1 dans la table des couleurs) sont affichés à l'aide de la couleur d'arrière-plan.

Pour plus d'informations sur l'utilisation des fonctions Windows suivantes, consultez Kit de développement logiciel Windows:

  • CreateDIBPatternBrush (cette fonction est fournie uniquement pour la compatibilité avec les applications écrites de versions de Windows antérieures à la version 3,0 ; utilisez la fonction de CreateDIBPatternBrushPt .)

  • CreateDIBPatternBrushPt (cette fonction doit être utilisée pour les applications win32.)

  • GlobalAlloc

Exemple

// Resource handle to bitmap.
HRSRC hRes;    
// Global handles to bitmap resource.
HGLOBAL hData;
void* hLockedData;   
CBrush brush;

// Find the resource handle.
hRes = ::FindResource(AfxGetResourceHandle(),
MAKEINTRESOURCE(IDB_BRUSH), RT_BITMAP);
if (hRes != NULL)
{
   // Lock and Load (or Load and Lock). 
   if (((hData = ::LoadResource(AfxGetResourceHandle(),
      hRes)) != NULL) && 
      ((hLockedData = ::LockResource(hData)) != NULL))
   {
      // Initialize the brush.
      brush.CreateDIBPatternBrush((const void*)hLockedData,
         DIB_RGB_COLORS);

      // Select the brush into the device context.
      CBrush* pOldBrush = pDC->SelectObject(&brush);

      // Draw.
      pDC->Rectangle(50, 50, 200, 200);

      // Restore the original device context.
      pDC->SelectObject(pOldBrush);

      // Free the resource.
      ::FreeResource(hLockedData);
   }
}

Configuration requise

Header: afxwin.h

Voir aussi

Référence

CBrush, classe

Graphique de la hiérarchie

CBrush::CreatePatternBrush

CBrush::CreateBrushIndirect

CBrush::CreateSolidBrush

CBrush::CreateHatchBrush

CGdiObject::CreateStockObject

CDC::SelectObject

CGdiObject::DeleteObject

CDC::GetBrushOrg

CDC::SetBrushOrg