Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette rubrique explique comment utiliser différents types de pinceaux dans un modèle OM XPS.
Les pinceaux de l’om XPS sont basés sur l'interface IXpsOMBrushet incluent les éléments suivants :
- Pinceaux de mosaïques
- interface IXpsOMTileBrush
- interface IXpsOMSolidColorBrush
- interface IXpsOMVisualBrush
- interface IXpsOMImageBrush
Pinceaux dégradés
Exemples de code
Créer un pinceau de couleur unie
L’exemple de code suivant crée un pinceau de couleur unie à partir d’une valeur de couleur définie dans le code.
HRESULT hr = S_OK;
XPS_COLOR xpsColor;
IXpsOMSolidColorBrush *brush;
// creates a solid red brush
xpsColor.colorType = XPS_COLOR_TYPE_SRGB;
xpsColor.value.sRGB.alpha = 0xFF;
xpsColor.value.sRGB.red = 0xFF;
xpsColor.value.sRGB.green = 0x00;
xpsColor.value.sRGB.blue = 0x00;
hr = xpsFactory->CreateSolidColorBrush(
&xpsColor,
NULL,
reinterpret_cast<IXpsOMSolidColorBrush**>(&brush));
// use brush
// when finished with brush, release pointer
brush->Release();
Créer un pinceau visuel
L’exemple de code suivant crée un pinceau à partir d’un objet visuel.
HRESULT hr = S_OK;
IXpsOMVisualBrush *brush;
XPS_RECT viewBoxRect = {0,0,0,0};
XPS_RECT viewPortRect = {0,0,0,0};
// set viewBoxRect to define the portion of the visual to use
// as the brush.
//
// set viewPortRect to define the location and size of the
// the brush in the destination
//
// create the brush
hr = xpsFactory->CreateVisualBrush (
&viewBoxRect,
&viewPortRect,
reinterpret_cast<IXpsOMVisualBrush**>(&brush));
// assign the visual object
// brushVisual points to a visual
// that is defined outside of this example
hr = brush->SetVisualLocal (brushVisual);
// use brush
// when finished with brush, release pointer
brush->Release();
Créer un pinceau d’image
Reportez-vous à l’exemple de code dans Placer des images dans un modèle OM XPS.
Créer un pinceau de dégradé linéaire
L’exemple de code suivant crée un pinceau de dégradé linéaire. Le dégradé a deux points de dégradé.
HRESULT hr = S_OK;
XPS_COLOR xpsColorStop;
IXpsOMGradientStop *xpsGradientStop1, *xpsGradientStop2;
IXpsOMLinearGradientBrush *brush;
XPS_POINT startPoint, endPoint;
// define the start color
xpsColorStop.colorType = XPS_COLOR_TYPE_SRGB;
xpsColorStop.value.sRGB.alpha = 0xFF;
xpsColorStop.value.sRGB.red = 0xE4;
xpsColorStop.value.sRGB.green = 0x3B;
xpsColorStop.value.sRGB.blue = 0x2F;
// create a gradient stop by setting the color and location
// for the beginning of the gradient
hr = xpsFactory->CreateGradientStop(
&xpsColorStop,
NULL,
0.0f,
&xpsGradientStop1);
startPoint.x = 375.75f;
startPoint.y = 18.0f;
// define the end color
xpsColorStop.colorType = XPS_COLOR_TYPE_SRGB;
xpsColorStop.value.sRGB.alpha = 0xFF;
xpsColorStop.value.sRGB.red = 0xEF;
xpsColorStop.value.sRGB.green = 0x79;
xpsColorStop.value.sRGB.blue = 0x2F;
// create a gradient stop by setting the color and location
// for the end of the gradient
hr = xpsFactory->CreateGradientStop(
&xpsColorStop,
NULL,
1.0f,
&xpsGradientStop2);
endPoint.x = 375.75f;
endPoint.y = 134.6f;
// create the brush
hr = xpsFactory->CreateLinearGradientBrush(
xpsGradientStop1,
xpsGradientStop2,
&startPoint,
&endPoint,
&brush);
// release gradient stops after creating brush
xpsGradientStop1->Release();
xpsGradientStop2->Release();
// when finished with brush, release pointer to brush
brush->Release();
Rubriques connexes