Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit onderwerp bevat een voorbeeld van het gebruik van de geometrie-gerelateerde interfaces in een XPS OM.
Een rechthoekige geometrie maken
In het volgende codevoorbeeld wordt een geometrieobject gemaakt dat een gesloten rechthoekige vorm beschrijft.
HRESULT hr = S_OK;
IXpsOMVisualCollection *canvasVisuals = NULL;
IXpsOMPath *pathSidebar = NULL;
IXpsOMGeometry *xpsGeometry = NULL;
IXpsOMGeometryFigure *xpsFigure = NULL;
IXpsOMGeometryFigureCollection *xpsFigureCollection = NULL;
IXpsOMSolidColorBrush *sidebarBrush = NULL;
XPS_POINT startPoint;
XPS_RECT shape;
// define the rectangle
shape.x = 10.0f;
shape.y = 10.0f;
shape.height = 100.0f;
shape.width = 200.0f;
// set the start point
startPoint.x = shape.x;
startPoint.y = shape.y;
// define the segment types to be straight lines
XPS_SEGMENT_TYPE sidebarSegmentTypes[3] = {
XPS_SEGMENT_TYPE_LINE,
XPS_SEGMENT_TYPE_LINE,
XPS_SEGMENT_TYPE_LINE
};
// define the points of the rectangular shape
// other than the start point
FLOAT sidebarSegmentData[6] = {
shape.x, shape.y + shape.height,
shape.x + shape.width, shape.y + shape.height,
shape.x + shape.width, shape.y
};
// set the lines to be solid (not stroked)
BOOL sidebarSegmentStrokes[3] = {
FALSE, FALSE, FALSE
};
// create the geometry figure interface
hr = xpsFactory->CreateGeometryFigure( &startPoint, &xpsFigure );
// close the figure so that the last segment point is
// connected to the start point
hr = xpsFigure->SetIsClosed( TRUE );
// set the shape to be filled by the fill brush
hr = xpsFigure->SetIsFilled( TRUE );
// set the segments using the information defined above
hr = xpsFigure->SetSegments(
3,
6,
sidebarSegmentTypes,
sidebarSegmentData,
sidebarSegmentStrokes);
// create a geometry using the figure just created
hr = xpsFactory->CreateGeometry(&xpsGeometry);
// get a pointer to the figure collection
hr = xpsGeometry->GetFigures(&xpsFigureCollection);
// and add the figure of the rectangle to the geometry
hr = xpsFigureCollection->Append(xpsFigure);
Zie de codevoorbeelden in de IXpsOMGeometryFigure::GetSegmentData Method en IXpsOMGeometryFigure::SetSegments Method referentieonderwerpen voor meer informatie over het toevoegen van segmenten aan een geometriefiguur.
Verwante onderwerpen