Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

problème de dessin

1 réponse
Avatar
Patrice Henrio
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.Form FormeHistoire
AutoRedraw = -1 'True
BackColor = &H80000009&
Caption = """Histoire"""
ClientHeight = 8190
ClientLeft = 270
ClientTop = -1770
ClientWidth = 11760
FillColor = &H80000018&
FillStyle = 0 'Solid
BeginProperty Font
Name = "Arial"
Size = 9.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00000000&
KeyPreview = -1 'True
LinkTopic = "Form1"
ScaleHeight = 546
ScaleMode = 3 'Pixel
ScaleWidth = 784
WindowState = 2 'Maximized


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

1 réponse

Avatar
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.Form FormeHistoire
AutoRedraw = -1 'True
BackColor = &H80000009&
Caption = """Histoire"""
ClientHeight = 8190
ClientLeft = 270
ClientTop = -1770
ClientWidth = 11760
FillColor = &H80000018&
FillStyle = 0 'Solid
BeginProperty Font
Name = "Arial"
Size = 9.75
Charset = 0
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00000000&
KeyPreview = -1 'True
LinkTopic = "Form1"
ScaleHeight = 546
ScaleMode = 3 'Pixel
ScaleWidth = 784
WindowState = 2 'Maximized


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