Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Topik ini menjelaskan cara menggunakan berbagai jenis kuas dalam OM XPS.
Kuas dalam XPS OM didasarkan padaAntarmuka IXpsOMBrushdan mencakup yang berikut:
- Sikat Petak Peta
- Antarmuka IXpsOMTileBrush
- antarmuka IXpsOMSolidColorBrush
- IXpsOMVisualBrush Interface
- IXpsOMImageBrush Interface
Sikat Gradien
Contoh Kode
Membuat kuas warna solid
Contoh kode berikut membuat kuas warna solid dari nilai warna yang ditentukan dalam kode.
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();
Membuat kuas visual
Contoh kode berikut membuat kuas dari objek visual.
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();
Membuat kuas gambar
Lihat contoh kode di Tempatkan Gambar dalam OM XPS.
Membuat kuas gradien linier
Contoh kode berikut membuat sikat gradien linier. Gradien memiliki dua pemberhentian gradien.
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();
Topik terkait