IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Déterminer les coordonnées d'un usercontrol


Sujet :

VB 6 et antérieur

  1. #1
    Membre habitué

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Points : 145
    Points
    145
    Par défaut Déterminer les coordonnées d'un usercontrol
    Salut,

    J'ai un usercontrol (textbox) sur une form.

    Je voudrais lorsque l'on utilise les touches gauches et droites déplacer ce usercontrol sur la form. Pour cela, j'ai besoin de la propriété "Left" (que j'initialise dans l'événement Keypress).

    Or, celle-ci me donne "1" sur mon projet de test et non pas la position du contrôle sur la form.

    Comment puis-je obtenir les coordonnées du usercontrol sur ma form ?

    Merci par avance.

  2. #2
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    La question du jour :
    tu peux nous montrer ton code stp ?

    Le controle Text est placé directement sur ta feuille ou à l'intérieur d'un autre controle (Frame par exemple) ?

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    Je ne comprends pas car ce n'est pas suffisamment précis.

    1) tu utilises l'événement Keypress de quel objet, TRES exactement ?

    2) l'utilisation des flêches n'est pas reconnue par l'évènement Keypress de la Form, par exemple, même si sa propriété KeyPreview est True

    Aller plus loin dans l'analyse sans précisions est impossible
    Je viens d'essayer avec l'un de mes activex (une simple loupe) et en jouant avec une pression de la touche A et l'évènement KeyPress de la Form ===>> aucun problème ! je déplace ma loupe ...

  4. #4
    Membre habitué

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Points : 145
    Points
    145
    Par défaut
    Merci pour vos réponses.

    Pour être plus explicite, voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Private Sub txtText_KeyUp(KeyCode As Integer, Shift As Integer)
      RaiseEvent KeyUp(KeyCode, Shift)
     
      Select Case KeyCode
        'Flèche gauche
        Case vbKeyLeft
          If Shift = vbCtrlMask Then
            txtText.Left = txtText.Left - 1
          End If
     
        'Flèche droite
        Case vbKeyRight
     
          'Si appui sur Shift, agrandissement du contrôle, sinon, déplacement
          If Shift = vbCtrlMask Then
            txtText.Width = txtText.Width + 1
          Else
            txtText.Left = txtText.Left + 1
          End If
     
        'Flèche haute
        Case vbKeyUp
     
          'Appui sur la touche CTRL
          If Shift = vbCtrlMask Then
            txtText.Top = txtText.Top - 1
          End If
     
        'Flèche basse
        Case vbKeyDown
          If Shift = vbCtrlMask Then
            txtText.Height = txtText.Height + 1
          Else
            txtText.Top = txtText.Top + 1
          End If
      End Select
    End Sub
    En fait, j'utilise l'événement KeyUp du textbox dans le usercontrol.

    Après un test, sur le left, celui-ci me renvoi la position "0". Donc, la flèche est bien reconnue, et ça fait 0 - 1... -1 ! Ce qui ne va pas du tout !

    Ce usercontrol, je le position sur une form. Et c'est les coordonnées sur la form que je souhaite contrôler (pour que l'utilisateur puisse le placer ou il veut).

  5. #5
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    C'est vraiment un usercontrol ou un simple controle text standard ?
    Que vaut la propriété left de ce controle en mode création quand tu le place sur ta feuille ?

  6. #6
    Membre habitué

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Points : 145
    Points
    145
    Par défaut
    Salut,

    C'est bien un usercontrol.

    La valeur de la propriété left est à 0.

  7. #7
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    1 étant une valeur que l'on peut penser en unité Pixels, pour être sûr d'employer l'unité du conteneur (Form, Frame ou autres) il faut convertire le deplacement et/ou l'agrandissement dans l'unité du conteneur, d'ou txtText.Parent.ScaleMode (recuperation de l'unité du conteneur ou se trouve l'objet UserControl), et la fonction ScaleX pour convertion pour Left et Width , ScaleY pour convertion pour Top et Height
    Le code devient,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
      Select Case KeyCode
        'Flèche gauche
        Case vbKeyLeft
          If Shift = vbCtrlMask Then
            'txtText.Left = txtText.Left - 1
            txtText.Left = txtText.Left - ScaleX(1, vbPixels, txtText.Parent.ScaleMode)
          End If
     
        'Flèche droite
        Case vbKeyRight
     
          'Si appui sur Shift, agrandissement du contrôle, sinon, déplacement
          If Shift = vbCtrlMask Then
            'txtText.Width = txtText.Width + 1
            txtText.Width = txtText.Width + ScaleX(1, vbPixels, txtText.Parent.ScaleMode)
          Else
            'txtText.Left = txtText.Left + 1
            txtText.Left = txtText.Left + ScaleX(1, vbPixels, txtText.Parent.ScaleMode)
          End If
     
        'Flèche haute
        Case vbKeyUp
     
          'Appui sur la touche CTRL
          If Shift = vbCtrlMask Then
            'txtText.Top = txtText.Top - 1
            txtText.Top = txtText.Top - ScaleY(1, vbPixels, txtText.Parent.ScaleMode)
          End If
     
        'Flèche basse
        Case vbKeyDown
          If Shift = vbCtrlMask Then
            'txtText.Height = txtText.Height + 1
            txtText.Height = txtText.Height + ScaleY(1, vbPixels, txtText.Parent.ScaleMode)
          Else
            'txtText.Top = txtText.Top + 1
            txtText.Top = txtText.Top + ScaleY(1, vbPixels, txtText.Parent.ScaleMode)
          End If
      End Select
    Ne pas oublier , une succesion de KeyUp, car pas de repetition comme dans KeyPress.

  8. #8
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Récapitulons les déclarations, donc !

    Je voudrais lorsque l'on utilise les touches gauches et droites déplacer ce usercontrol sur la form
    Pour cela, j'ai besoin de la propriété "Left" (que j'initialise dans l'événement Keypress).
    En fait, j'utilise l'événement KeyUp du textbox dans le usercontrol.
    et tu veux déplacer quoi dans quoi en fait et finalement (on ne sait plus, là ...)

    Bonne chance ....

  9. #9
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Citation Envoyé par esoso Voir le message
    Salut,

    C'est bien un usercontrol.

    La valeur de la propriété left est à 0.
    Est ce normal que la propriété left soit à 0 en mode création ? As tu placé ton controle tout à gauche de la feuille ? Si oui, je vois pas où est le problème.
    Si non, il va plutot falloir chercher du côté du code de ton usercontrol peut etre.

  10. #10
    Membre habitué

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Points : 145
    Points
    145
    Par défaut
    Ok, je tente d'expliquer plus clairement.

    1. j'ai un usercontrol qui contient un textbox.

    2. je place ce usercontrol sur une form.

    Ce que je souhaite, c'est utiliser les touches de directions pour déplacer ce usercontrol sur la form.

    J'ai mis en place la routine de ProgElecT, mais ça ne marche pas :-(.

    Pour ce cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          If Shift = vbCtrlMask Then
            'txtText.Left = txtText.Left - 1
            txtText.Left = txtText.Left - ScaleX(1, vbPixels, txtText.Parent.ScaleMode)
          End If
    La valeur retournée par ScaleX est de 15.

    txtText.left est de 0.

  11. #11
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    pour déplacer ce usercontrol
    ton titre était pourtant bien explicite : "Déterminer les coordonnées d'un usercontrol "

    J'avais pas compris sa , j'ai penser que tu voulais deplacer/agrandir le txtText dans le UserControl et donc eventuellement agrandir/diminuer le UserControl dans une autre routine, mais tout en laisant cet UserControl au même point de depart.
    J'ai recherché à faire sa il y a peu, mais pas réussi du fait que la propriété UserControl.left et UserControl.Top n'existe pas, donc j'ai pas réussi à faire son deplacement sur le control parent.

    En relisant, je me disai qu'il faudrat que j'essai avec un truc du style
    UserControl.Parent.ParentControls.Item(1) = Left + 45
    ou Item(1) designerait justement le usercontrol (Item(?) Renvoie un membre spécifique d'une collection .

  12. #12
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Je m'arrête à ceci :
    Ce que je souhaite, c'est utiliser les touches de directions pour déplacer ce usercontrol sur la form
    et on y va :

    1) les touches directionnelles ne peuvent être reconnues par un évènement KeyPress (pas de Keyascii généré par leur utilisation quelle que soit la valeur donnée à la propriété KeyPreview de la Form)

    2) les évènements KeyDown et KeyUp de la Form (susceptibles de retourner un Keycode pour les flêches directionnelles si la propriété KeyPreview de la Form est définie à True) ne peuvent le faire si la Form contient certains contrôles (tels les boutons de commande) !!!

    3) Qu'est donc txtText exactement ? Est-ce vraiment le nom attribué lors de l'insertion sur ta Form de ton contrôle activex ? (j'ai quelques doutes sérieux à ce propos) ou est-ce le nom d'un contrôle au sein de ton activex ? (et dans ce cas txtText ne spécifierait pas du tout ton contrôle... mais alors : PAS DU TOUT !

    Tiens : après avoir inséré ton activex sur ta Form d'accueil : édite donc ses propriétés et énumère-les nous toutes, à commencer par le nom qu'il reçoit à son insertion...

    A progelect : Pardon ? Un contrôle activex a ses propriétés de positionnement et toutes les propriétés qu'on lui construit... (et je déplace les miens sans problème sur ma Form, y compris en les "glissant/déposant" ... cas d'une loupe !!!!)

  13. #13
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    Citation Envoyé par ucfoutu
    A progelect : Pardon ? Un contrôle activex a ses propriétés de positionnement et toutes les propriétés qu'on lui construit... (et je déplace les miens sans problème sur ma Form, y compris en les "glissant/déposant" ... cas d'une loupe !!!!)
    en le gerant dans le UserControl

  14. #14
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    NON !

    Allez !
    Essaye donc celui-ci (fais-moi confiance, il est de mon cru et totalement inofensif). Ce n'est qu'une petite loupe (parfaitement déplaçable et j'ai_ vérifié cette 'déplaçabilité ce soir encore, avant de répondre).

    Amitiés .
    Fichiers attachés Fichiers attachés

  15. #15
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    ucfoutu tu m'as vexé , un OCX sans plus d'indication, dur dur.
    Voici donc un OCX qui fait ce que demande esoso
    Gestion du déplacement de l'UserControl dans l'OCX, il suffit de le placer sur le Form ou un PictureBox ou un Framme ou ..... (bien sûr peut importe le ScaleMode), de lancer le projet, et d'utiliser les flèches pour le déplacer, les flèches et la touche Ctrl pour le dimensionner.

    Demain, promis, je met le code.

    Qu'en pense ucfoutu

  16. #16
    Membre habitué

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Points : 145
    Points
    145
    Par défaut
    Merci pour vos messages, ça m'encourage.

    ProgElecT, c'est super. C'est exactement ça que je veux !

    J'attends le code avec impatience ;-).

  17. #17
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    bonsoir,
    ProgElect. Pas de TOP ni de LEFT dans un UserControl ?? où t'a vu ça toi... . Regarde le zip joint.

    Pour en revenir à notre affaire, ce serrait quand même beaucoup plus élégant de déplacer avec la souris il me semble, Un tout petit peu plus compliqué mais ça vaut le coup.
    Ah oui, il faut appuyer sur la touche Alt pour déplacer, l'ennui avec les contrôle texte c'est qu'en générale lorsqu'ont relache la souris il y a le menu copier.. qui vient ennuyer sont monde mais avec Alt il n'y a pas ce problème.

    Cordialement
    Fichiers attachés Fichiers attachés

  18. #18
    Membre habitué

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Points : 145
    Points
    145
    Par défaut
    Salut,

    En fait oui, je mets le uc grâce à la souris à l'aide du drag&drop, mais ce n'est pas très précis. Donc, en utilisant les touches, on peut positionner ce uc ou on veut exactement.

    Mais ton projet semble bien fonctionner.

    Voilà. Voilà.

  19. #19
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 105
    Points : 16 627
    Points
    16 627
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    Option Explicit
    Private Type POINTAPI
            X As Long
            y As Long
    End Type
    Private Type RECT
            Bottom As Long
            Left As Long
            Right As Long
            Top As Long
    End Type
    Private Type WINDOWPLACEMENT
            flags As Long
            Length As Long
            ptMaxPosition As POINTAPI
            ptMinPosition As POINTAPI
            rcNormalPosition As RECT
            showCmd As Long
    End Type
    Private Declare Function GetWindowPlacement Lib "user32" ( _
        ByVal hwnd As Long, _
        lpwndpl As WINDOWPLACEMENT) As Long
     
    Private Declare Function MoveWindow Lib "user32" ( _
        ByVal hwnd As Long, _
        ByVal X As Long, _
        ByVal y As Long, _
        ByVal nWidth As Long, _
        ByVal nHeight As Long, _
        ByVal bRepaint As Long) As Long
    Dim MeCoord As WINDOWPLACEMENT
     
    Private Type LesCoord
            Height As Long
            Left As Long
            Top As Long
            Width As Long
    End Type
     
    Dim NewMeCoord As LesCoord
     
    '******************************************************************
    '** la propriété ScaleMode de UserControl doit être mis à Pixels **
    '** la propriété KeyPreview de UserControl doit être mis à True  **
    '******************************************************************
     
    Private Sub UserControl_KeyUp(KeyCode As Integer, Shift As Integer)
    'recuperation des coordonnées de l'UserControl posé sur le conteneur
    GetWindowPlacement UserControl.hwnd, MeCoord
    ' ne me demandez pas pourquoi (le systeme de calcul bizzard),
    'je ne sais pas , deduit apres de nombreux essais
    NewMeCoord.Height = MeCoord.showCmd - MeCoord.rcNormalPosition.Right
    NewMeCoord.Left = MeCoord.rcNormalPosition.Left
    NewMeCoord.Top = MeCoord.rcNormalPosition.Right
    NewMeCoord.Width = MeCoord.rcNormalPosition.Top - MeCoord.rcNormalPosition.Left
     
    Select Case KeyCode
     Case vbKeyLeft '37 Flèche gauche
        If Shift = vbCtrlMask Then 'CTRL
         'deplacement vers la gauche
         NewMeCoord.Left = NewMeCoord.Left - 1
        Else
        'diminution en largeur
        NewMeCoord.Width = NewMeCoord.Width - 1
        End If
      Case vbKeyUp '38 Flèche haute
       If Shift = vbCtrlMask Then 'CTRL
        'deplacement vers le haut
        NewMeCoord.Top = NewMeCoord.Top - 1
        Else
        'diminution en hauteur
        NewMeCoord.Height = NewMeCoord.Height - 1
       End If
     
     Case vbKeyRight '39 Flèche droite
      'Si appui sur Ctrl, agrandissement du contrôle, sinon, déplacement
      If Shift = vbCtrlMask Then 'CTRL
       'deplacement vers la droite
       NewMeCoord.Left = NewMeCoord.Left + 1
       Else
       'agrandissement en largeur
       NewMeCoord.Width = NewMeCoord.Width + 1
      End If
     
      Case vbKeyDown '40 Flèche basse
       If Shift = vbCtrlMask Then
       'deplacement vers la bas
       NewMeCoord.Top = NewMeCoord.Top + 1
       Else
       'agrandissement en hauteur
       NewMeCoord.Height = NewMeCoord.Height + 1
      End If
    End Select
    'verifications des coordonnées minimum
    If NewMeCoord.Width <= 12 Then NewMeCoord.Width = 13
    If NewMeCoord.Left < 1 Then NewMeCoord.Left = 1
    If NewMeCoord.Height <= 16 Then NewMeCoord.Height = 17
    If NewMeCoord.Top < 1 Then NewMeCoord.Top = 1
     
    'n'est valable que si le contrôle est placé directement sur le Form
    '************* à revoire *******************
    If NewMeCoord.Left > ScaleX(UserControl.Parent.ScaleWidth, UserControl.Parent.ScaleMode, vbPixels) - NewMeCoord.Width Then
     NewMeCoord.Left = ScaleX(UserControl.Parent.ScaleWidth, UserControl.Parent.ScaleMode, vbPixels) - NewMeCoord.Width
    End If
     
    If NewMeCoord.Top > ScaleY(UserControl.Parent.ScaleHeight, UserControl.Parent.ScaleMode, vbPixels) - NewMeCoord.Height Then
     NewMeCoord.Height = ScaleY(UserControl.Parent.ScaleHeight, UserControl.Parent.ScaleMode, vbPixels) - NewMeCoord.Height
    End If
    '************* fini à revoire *******************
     
    'met a jour le TextBox
    txtText.Move 0, 0, NewMeCoord.Width - 1, NewMeCoord.Height - 1
    'met a jour le UserControl
    MoveWindow UserControl.hwnd, _
                NewMeCoord.Left, NewMeCoord.Top, _
                NewMeCoord.Width, NewMeCoord.Height, 1
    End Sub
     
    Private Sub UserControl_Resize()
    On Error Resume Next
    txtText.Width = ScaleX(UserControl.Width, UserControl.Parent.ScaleMode, vbPixels)
    txtText.Height = ScaleY(UserControl.Height, UserControl.Parent.ScaleMode, vbPixels)
    End Sub

  20. #20
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    bonjour à tous,
    ma façon de faire...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Dim Twips_X As Integer
    Dim Twips_Y As Integer
     
    Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
        'If Shift = 4 Then
            Select Case KeyCode
            Case vbKeyLeft
                Extender.Left = Extender.Left - Twips_X
            Case vbKeyRight
                Extender.Left = Extender.Left + Twips_X
            Case vbKeyUp
                Extender.Top = Extender.Top - Twips_Y
            Case vbKeyDown
                Extender.Top = Extender.Top + Twips_Y
            End Select
        'End If
    End Sub
     
    Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
    Twips_X = Screen.TwipsPerPixelX
    Twips_Y = Screen.TwipsPerPixelX
    End Sub
    A+

Discussions similaires

  1. Afficher les coordonnées d'un usercontrol lors de son déplacement
    Par soso78 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 14/11/2007, 21h48
  2. Retourner les coordonnées d'un usercontrol
    Par soso78 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 09/10/2007, 14h08
  3. Déterminer les coordonnés d'un cercle
    Par nizartu dans le forum MATLAB
    Réponses: 1
    Dernier message: 30/03/2007, 15h51
  4. Déterminer les coordonnées d'une image
    Par blaise4714 dans le forum Images
    Réponses: 2
    Dernier message: 27/11/2006, 19h05
  5. Réponses: 4
    Dernier message: 27/11/2006, 18h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo