none
draw line effacer par code une ligne avec vb2010 RRS feed

Réponses

  • Que voulez vous réellement faire? Effacer une ligne, plusieurs lignes, la dernière ligne dessinée?

    Pour effacer une ligne ou plusieurs , rechargez l'image.

    Si vous voulez effacer une ligne ou une autre figure:

    -Capturez le morceau d'image dans un rectangle qui va être recouvert par la ligne/figure.

    -Tracer la ligne ensuite

    Pour effacer: recoller le rectangle sur l'image à l'emplacement de la ligne.

    Rechercher la mèthode bitmap.Lockbits pour capture le rectangle puis System.Runtime.InteropServices.Marshal.Copy


    Cyrille Precetti <br/>

    lundi 8 février 2016 07:53
  • Bonjour,

    L'affaire n'est pas aussi simple.
    Il faut gérer l'évènement OnPaint du contrôle.
    Toutes les instructions de dessin doivent être dans cet évènement.
    Vous devez maintenir une liste des éléments à dessiner. Si l'un des éléments ne doit plus être redessiné, il faut le retirer de cette liste.

    Ensuite vous forcer le contrôle à se redessiner en déclenchant l'évènement OnPaint avec les fonctions Refresh() ou Invalidate().

    J'ai publié un exemple en C# à l'adresse suivante.
    https://code.msdn.microsoft.com/Control-utilisateur-41cbfb14

    Cordialement
    Gérard

    lundi 8 février 2016 07:57

Toutes les réponses

  • Que voulez vous réellement faire? Effacer une ligne, plusieurs lignes, la dernière ligne dessinée?

    Pour effacer une ligne ou plusieurs , rechargez l'image.

    Si vous voulez effacer une ligne ou une autre figure:

    -Capturez le morceau d'image dans un rectangle qui va être recouvert par la ligne/figure.

    -Tracer la ligne ensuite

    Pour effacer: recoller le rectangle sur l'image à l'emplacement de la ligne.

    Rechercher la mèthode bitmap.Lockbits pour capture le rectangle puis System.Runtime.InteropServices.Marshal.Copy


    Cyrille Precetti <br/>

    lundi 8 février 2016 07:53
  • Bonjour,

    L'affaire n'est pas aussi simple.
    Il faut gérer l'évènement OnPaint du contrôle.
    Toutes les instructions de dessin doivent être dans cet évènement.
    Vous devez maintenir une liste des éléments à dessiner. Si l'un des éléments ne doit plus être redessiné, il faut le retirer de cette liste.

    Ensuite vous forcer le contrôle à se redessiner en déclenchant l'évènement OnPaint avec les fonctions Refresh() ou Invalidate().

    J'ai publié un exemple en C# à l'adresse suivante.
    https://code.msdn.microsoft.com/Control-utilisateur-41cbfb14

    Cordialement
    Gérard

    lundi 8 février 2016 07:57
  • merci beaucoup
    lundi 8 février 2016 13:17