Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questo argomento viene fornito un esempio di utilizzo delle interfacce correlate alla geometria in un file XPS OM.
Creare una geometria rettangolare
Nell'esempio di codice seguente viene creato un oggetto geometry che descrive una forma rettangolare chiusa.
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);
Per altre informazioni sull'aggiunta di segmenti a una figura geometry, vedere gli esempi di codice nell'Metodo IXpsOMGeometryFigure::GetSegmentData e IXpsOMGeometryFigure::SetSegments Method reference topics.
Argomenti correlati