Partager via


Renderer.Draw, méthode (IntPtr, Stroke)

Mise à jour : November 2007

Dessine l'objet Stroke sur le contexte de périphérique dont le handle est passé.

Espace de noms :  Microsoft.Ink
Assembly :  Microsoft.Ink (dans Microsoft.Ink.dll)

Syntaxe

'Déclaration
Public Sub Draw ( _
    hdc As IntPtr, _
    stroke As Stroke _
)
'Utilisation
Dim instance As Renderer
Dim hdc As IntPtr
Dim stroke As Stroke

instance.Draw(hdc, stroke)
public void Draw(
    IntPtr hdc,
    Stroke stroke
)
public:
void Draw(
    IntPtr hdc, 
    Stroke^ stroke
)
public void Draw(
    IntPtr hdc,
    Stroke stroke
)
public function Draw(
    hdc : IntPtr, 
    stroke : Stroke
)

Paramètres

  • hdc
    Type : System.IntPtr
    Handle du contexte de périphérique sur lequel dessiner.

Notes

ms569824.alert_note(fr-fr,VS.90).gifRemarque :

Si possible, utilisez la surcharge appropriée qui accepte un objet Graphics (page pouvant être en anglais) plutôt que celle qui accepte un IntPtr (page pouvant être en anglais).

La largeur du stylet est ajustée en fonction de la façon dont vous utilisez la méthode SetViewTransform. Spécifiquement, la largeur du stylet est multipliée (ou a mise à l'échelle) par la racine carrée du déterminant de la transformation d'affichage.

ms569824.alert_note(fr-fr,VS.90).gifRemarque :

Si vous n'avez pas explicitement affecté de valeur à la largeur du stylet, la largeur par défaut est 53. Vous devez multiplier la largeur du stylet par la racine carrée du déterminant pour obtenir le cadre englobant approprié. La hauteur et la largeur du cadre englobant sont augmentées de la moitié de cette valeur dans chaque direction.

Par exemple, si la largeur du stylet est 53, la racine carrée du déterminant est 50 et le cadre englobant est (0, 0, 1000, 1000). Le réglage de la largeur du stylet au cadre englobant dans chaque direction est calculé de la façon suivante : (53 * 50) / 2 . Le côté droit et le bas sont incrémentés d'une unité. Un cadre englobant rendu de (-1325, -1325, 2326, 2326) est créé.

L'objet Renderer force l'affectation de la valeur 0,0 pour les origines des fenêtres d'affichage. Tous les paramètres existants sont enregistrés et restaurés, mais ils ne sont pas utilisés par le Renderer. Pour procéder au défilement, utilisez les méthodes GetViewTransform et GetObjectTransform de l'objet Renderer.

ms569824.alert_security(fr-fr,VS.90).gifNote de sécurité :

Lors de l'utilisation en situation de confiance partielle, cette méthode requiert l'autorisation SecurityPermissionFlag.UnmanagedCode (page pouvant être en anglais), en plus des autorisations requises par InkCollector. Pour plus d'informations sur les problèmes de sécurité et la confiance partielle, consultez Security and Trust.

Exemples

Dans cet exemple, un objet Stroke est créé dans un objet Ink. Le trait a la forme de la lettre anglaise N. Une fois créé, le trait est affiché dans le Panel (page pouvant être en anglais) associé à l'objet InkOverlay ainsi que sur un autre panneau. Pour ce faire, on appelle deux fois la méthode Draw, en passant différentes valeurs du handle de contexte de périphérique au paramètre hdc.

Using g1 As Graphics = mInkOverlay.AttachedControl.CreateGraphics()
    ' create the stroke
    Dim strokePoints() As Point = _
           { _
               New Point(200, 4000), _
               New Point(200, 200), _
               New Point(3000, 4000), _
               New Point(3000, 200) _
           }
    Dim oneStroke As Stroke = mInkOverlay.Ink.CreateStroke(strokePoints)
    ' draw the stroke on the control attached to InkOverlay
    ' get the handle to the device context
    Dim hdc1 As IntPtr = g1.GetHdc()
    ' draw the stroke
    mInkOverlay.Renderer.Draw(hdc1, oneStroke)
    ' release the handle to the device context
    g1.ReleaseHdc(hdc1)
    ' now draw the stroke on another control also
    Using g2 As Graphics = Me.panelForDraw.CreateGraphics()
        ' get the handle to the device context
        Dim hdc2 As IntPtr = g2.GetHdc()
        ' draw the stroke
        mInkOverlay.Renderer.Draw(hdc2, oneStroke)
        ' release the handle to the device context
        g2.ReleaseHdc(hdc1)
    End Using
End Using
using (Graphics g1 = mInkOverlay.AttachedControl.CreateGraphics())
{
    // create the stroke
    Point[] strokePoints = new Point[4] 
        { 
            new Point(200,  4000), 
            new Point(200, 200),
            new Point(3000, 4000),
            new Point(3000, 200)
        };

    Stroke oneStroke = mInkOverlay.Ink.CreateStroke(strokePoints);
    // draw the stroke on the control attached to InkOverlay
    // get the handle to the device context
    IntPtr hdc1 = g1.GetHdc();
    // draw the stroke
    mInkOverlay.Renderer.Draw(hdc1, oneStroke);
    // release the handle to the device context
    g1.ReleaseHdc(hdc1);
    // now draw the stroke on another control also
    using (Graphics g2 = this.panelForDraw.CreateGraphics())
    {
        // get the handle to the device context
        IntPtr hdc2 = g2.GetHdc();
        // draw the stroke
        mInkOverlay.Renderer.Draw(hdc2, oneStroke);
        // release the handle to the device context
        g2.ReleaseHdc(hdc1);
    }
}

Plateformes

Windows Vista

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Informations de version

.NET Framework

Pris en charge dans : 3.0

Voir aussi

Référence

Renderer, classe

Membres Renderer

Draw, surcharge

Microsoft.Ink, espace de noms

Renderer.SetViewTransform

DrawingAttributes

Strokes

Stroke