Tout récemment j'ai été confronté à un problème qui n(arrivait pas
auparavant.
J'ai une forme avec un pictureBox (PB) sur lequel se trouvent des labels.
Je dessine sur la PB à l'aide de l'API DrawPolynome, puis j'affiche les
labels. Jusqu'à tout récemment cela fonctionnait nickel. Depuis que je fais
afficher les labels à l'aide d'une sub attachée à la forme, le dessin des
polygones se fait mais se déteriore ensuite lors de l'affichage des labels.
Je suis obligé d'utiliser PB.refresh pour retrouver une image correcte. Cela
résoud le problème mais crée un problème de scintillement. Quelqu'un a une
idée ?
Je précise les propriétés non standard de la forme, du PB et des labels
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
touriste
Bonjour,
Si vous utilisez des API graphiques il faut que la propriété Autoredraw du PB soit : false.
C'est à vous ensuite de gérer l'affichage dans l'événement paint du PB.
Avec autoredraw à true, vous avez une interférence entre les fonctions de dessin VB et vos propre fonctions de dessin qui utilise les API.
A+
Christophe
Patrice Henrio a écrit :
Bonjour,
Tout récemment j'ai été confronté à un problème qui n(arrivait pas auparavant.
J'ai une forme avec un pictureBox (PB) sur lequel se trouvent des labels. Je dessine sur la PB à l'aide de l'API DrawPolynome, puis j'affiche les labels. Jusqu'à tout récemment cela fonctionnait nickel. Depuis que je fais afficher les labels à l'aide d'une sub attachée à la forme, le dessin des polygones se fait mais se déteriore ensuite lors de l'affichage des labels. Je suis obligé d'utiliser PB.refresh pour retrouver une image correcte. Cela résoud le problème mais crée un problème de scintillement. Quelqu'un a une idée ?
Je précise les propriétés non standard de la forme, du PB et des labels
Begin VB.PictureBox Carte AutoRedraw = -1 'True AutoSize = -1 'True BackColor = &H00FF80FF& ClipControls = 0 'False FillColor = &H00FF80FF& FontTransparent = 0 'False ForeColor = &H0000FFFF& Height = 8415 Left = 120 ScaleHeight = 557 ScaleMode = 3 'Pixel ScaleWidth = 557 TabIndex = 1 ToolTipText = """""" Top = 0 Visible = 0 'False Width = 8415 Begin VB.Label LblRoi Alignment = 2 'Center AutoSize = -1 'True BackColor = &H00FFFFFF& BackStyle = 0 'Transparent BorderStyle = 1 'Fixed Single BeginProperty Font Name = "Arial" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 300 Index = 0 Left = 5160 TabIndex = 3 ToolTipText = " ""Cliquer à gauche pour déplacer les labels (meilleure lisibilité), à droite pour obtenir des informations (texte à droite).""" Top = 4680 Visible = 0 'False Width = 120 End Begin VB.Label LblRégion Alignment = 2 'Center AutoSize = -1 'True BackStyle = 0 'Transparent BeginProperty Font Name = "Arial" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 240 Index = 0 Left = 5520 TabIndex = 4 ToolTipText = " ""Cliquer à gauche pour déplacer les labels (meilleure lisibilité), à droite pour obtenir des informations (texte à droite).""" Top = 4680 Width = 60 End End End
Bonjour,
Si vous utilisez des API graphiques il faut que la propriété Autoredraw
du PB soit : false.
C'est à vous ensuite de gérer l'affichage dans l'événement paint du PB.
Avec autoredraw à true, vous avez une interférence entre les fonctions
de dessin VB et vos propre fonctions de dessin qui utilise les API.
A+
Christophe
Patrice Henrio a écrit :
Bonjour,
Tout récemment j'ai été confronté à un problème qui n(arrivait pas
auparavant.
J'ai une forme avec un pictureBox (PB) sur lequel se trouvent des labels.
Je dessine sur la PB à l'aide de l'API DrawPolynome, puis j'affiche les
labels. Jusqu'à tout récemment cela fonctionnait nickel. Depuis que je fais
afficher les labels à l'aide d'une sub attachée à la forme, le dessin des
polygones se fait mais se déteriore ensuite lors de l'affichage des labels.
Je suis obligé d'utiliser PB.refresh pour retrouver une image correcte. Cela
résoud le problème mais crée un problème de scintillement. Quelqu'un a une
idée ?
Je précise les propriétés non standard de la forme, du PB et des labels
Si vous utilisez des API graphiques il faut que la propriété Autoredraw du PB soit : false.
C'est à vous ensuite de gérer l'affichage dans l'événement paint du PB.
Avec autoredraw à true, vous avez une interférence entre les fonctions de dessin VB et vos propre fonctions de dessin qui utilise les API.
A+
Christophe
Patrice Henrio a écrit :
Bonjour,
Tout récemment j'ai été confronté à un problème qui n(arrivait pas auparavant.
J'ai une forme avec un pictureBox (PB) sur lequel se trouvent des labels. Je dessine sur la PB à l'aide de l'API DrawPolynome, puis j'affiche les labels. Jusqu'à tout récemment cela fonctionnait nickel. Depuis que je fais afficher les labels à l'aide d'une sub attachée à la forme, le dessin des polygones se fait mais se déteriore ensuite lors de l'affichage des labels. Je suis obligé d'utiliser PB.refresh pour retrouver une image correcte. Cela résoud le problème mais crée un problème de scintillement. Quelqu'un a une idée ?
Je précise les propriétés non standard de la forme, du PB et des labels