Picturebox 3d ???

Résolu
cs_doyen Messages postés 96 Date d'inscription jeudi 24 janvier 2002 Statut Membre Dernière intervention 9 mai 2011 - 11 nov. 2004 à 23:40
cs_doyen Messages postés 96 Date d'inscription jeudi 24 janvier 2002 Statut Membre Dernière intervention 9 mai 2011 - 13 nov. 2004 à 12:00
Bonsoir ,

Je créer un control utilisateur pour m'entrainer ( c'est le 1er et c'esdt un slider ) et je voudrais pousser un peu + loin , par ex mettre un picture box en 3d ( avec les couleurs de bord qui m'interesse ) mais je n'y arrive pas , il ne me prend pas les "LINE"

Ci dessous les lignes appeles dans le read property

Public Sub Refresh()
PicCurseur.BackColor = Ctrl_BackColor
' conteneur en 3d
PicCurseur.Line (0, 0)-(PicCurseur.ScaleWidth, PicCurseur.ScaleHeight), &H7A7A7A, B
PicCurseur.Line (1, 1)-(PicCurseur.ScaleWidth, PicCurseur.ScaleHeight), &H7A7A7A, B
PicCurseur.Line (PicCurseur.ScaleWidth - 1, 1)-(PicCurseur.ScaleWidth - 1, PicCurseur.ScaleHeight - 1), &HA3A3A3
PicCurseur.Line (PicCurseur.ScaleWidth - 2, 2)-(PicCurseur.ScaleWidth - 2, PicCurseur.ScaleHeight - 2), &HA3A3A3
PicCurseur.Line (PicCurseur.ScaleWidth - 1, PicCurseur.ScaleHeight - 1)-(1, PicCurseur.ScaleHeight - 1), &HA3A3A3
PicCurseur.Line (PicCurseur.ScaleWidth - 2, PicCurseur.ScaleHeight - 2)-(2, PicCurseur.ScaleHeight - 2), &HA3A3A3

PicCurseur.Refresh
End Sub

Quelqu'un peut m'aider ??

Merci
A+javascript:AjoutSmiley(' :shy) ');

4 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
12 nov. 2004 à 00:41
met la PictureBox en AutoRedraw ou enlève ton Refresh.

d'autre part si t'es en Twips, il y a un problème, le -1 ou -2 ça marche pas, il faut compter en pixels.

Dim x As Integer
x = ScaleX(1, vbPixels, vbTwips)

PicCurseur.Line (0, 0)-(PicCurseur.ScaleWidth-x, PicCurseur.ScaleHeight-x), &H7A7A7A, B

Daniel
3
cs_doyen Messages postés 96 Date d'inscription jeudi 24 janvier 2002 Statut Membre Dernière intervention 9 mai 2011
13 nov. 2004 à 00:37
Merci Gobillot , pendant que j'y suis .....

Je constate que l'affichage (Caption) sur un label est longue ( elle ne se fait pas de suite , je m'explique ,

Toujours pour mon slider , de chaque coté du picture.box a l'extremite j'ai 2 label quand on clic sur le gauche on fait (-) moins sur la Value et a droite on fait + puis j'affiche ce resultat dans un autre label , c'est cet affichage qui est long ( en gros on attend 1sec !!! ) ci dessous la procedure:

Private Sub lblIncreSmall_Click(Index As Integer)
If Index = 0 Then
Ctrl_Value = Ctrl_Value - Ctrl_SmallChange
If Ctrl_Value < 0 Then Ctrl_Value = 0
Else
Ctrl_Value = Ctrl_Value + Ctrl_SmallChange
End If

LblCurseur.Caption = Ctrl_Value
' LblCurseur.Refresh
End Sub

Tu vois un os ???

A+
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
13 nov. 2004 à 02:30
j'ai une petite idée, en utilisant un timer, tu peux régler ta vitesse comme tu veux.

Dim Ctrl_Value As Integer
Dim Ctrl_SmallChange As Integer
Dim Ctrl_Min As Integer
Dim Ctrl_Max As Integer
Dim Ind As Integer

Private Sub Form_Load()
Ctrl_Value = 50
Ctrl_SmallChange = 10
Ctrl_Min = 0
Ctrl_Max = 100
End Sub

Private Sub lblIncreSmall_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
Ind = Index
Timer1.Enabled = True
End Sub

Private Sub lblIncreSmall_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
Timer1.Enabled = False
End Sub

Private Sub Timer1_Timer()
If Ind = 0 Then
Ctrl_Value = Ctrl_Value - Ctrl_SmallChange
If Ctrl_Value < Ctrl_Min Then Ctrl_Value = Ctrl_Min
Else
Ctrl_Value = Ctrl_Value + Ctrl_SmallChange
If Ctrl_Value > Ctrl_Max Then Ctrl_Value = Ctrl_Max
End If
lblCurseur.Caption = Ctrl_Value
End Sub
0
cs_doyen Messages postés 96 Date d'inscription jeudi 24 janvier 2002 Statut Membre Dernière intervention 9 mai 2011
13 nov. 2004 à 12:00
Salut ,

J'ai bien essayé avec le timer , mais c'est toujours lent a l'affichage, j'ai meme essayé de supprimer le label et d'ecrire sur le pictureBox directement , mais c'est pareil , en gros ça s'affiche tous les 2 clic ou alors on attend 1sec avant le 2 eme clic , c'est pas top !!!

Je vois pas ce qui ralenti cet affichage sur le label j'ai aussi essayé en mettant avant Doevents. Doit avoir un truc de rien du tout , mais faut trouver

Merci encore et A+
0
Rejoignez-nous