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 :

Probleme de focus


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut Probleme de focus
    Bonjours a tous
    J'aimerais avoir votre avis a tous a propos d'un problème que j'ai en ce moment
    Alors voila je commence a programmer en VB et j'aimerais faire un petit truc qui me permettrais de savoir quelle application (fenêtre) est au premier plan et ensuite de connaitre les coordonnées de l'élément qui a le focus sur cette fenêtre
    Je dois avouer que ça fait semaine que je m'arrache la tête sur ça et je bloque complètement, j'ai beau chercher sur les tutos et les forum, rien, nada.......

    Alors je me retourne vers vous pour m'orienter vers mes recherche.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 40
    Par défaut
    Salut,

    Je ne sais pas si cela peut t'aider mais regarde la propriété ActiveControl D'un formulaire pour connaitre le contrôle qui a le focus

    @+ Julien

  3. #3
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    precision qui te seras demandée à un moment ou à un autre
    quelle application (fenêtre) est au premier plan
    Application, programme externe? une fenêtre de ton programme?

    Si s'est une fenêtre de ton programme, pour illustrer ce dont parlait epsylon_9
    3 Forms
    Dans Form1, 1 Timer1, 1 Label1 et 1 Label2
    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
    Option Explicit
    Private Sub Form_Load()
    Label1.Move 30, 30
    Label2.Move 30, Label1.Top + Label1.Height
    Label1.Caption = "": Label2.Caption = ""
    Label1.AutoSize = True: Label2.AutoSize = True
    Me.Move 30, 30, 900, 1200
    Timer1.Interval = 1000 '1 Sc
    Timer1.Enabled = True
    Form2.Show
    End Sub
    Private Sub Timer1_Timer()
    Label1.Caption = Screen.ActiveForm.Caption
    If Label1.Caption = "Form3" Then
     Label2.Caption = Screen.ActiveForm.ActiveControl.Name
     Else
     Label2.Caption = ""
    End If
    End Sub
    Dans form2, aucun composant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option Explicit
    Private Sub Form_Load()
    Me.Move 60, 1320, 900, 1200
    Form3.Show
    End Sub
    Dans Form3, 1 CommandButton1 et 1 TextBox1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Option Explicit
    Private Sub Form_Load()
    Me.Move 90, 2650, 2685, 2040
    Command1.Move 270, 210, 1935, 495
    Text1.Move 270, 840, 1935, 495
    End Sub
    Lances le projet, passe d'un Form a l'autre et d'un contrôle à l'autre, observe les labels de Form1.

    Si s'est une fenêtre d'un autre programme, sa
    Citation Envoyé par Mom's
    je commence a programmer en VB
    c'est plus delicat, car il te faudra utiliser des APIs, il faut deja un peu maitriser les composants, methodes et fonctions intrinseque de VB.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut
    Oui en faite c'est une fenêtre d'un autre programme.
    En faite je bosse sur une série de macro VBA dans un logiciel autre que Office, dc je me met au VB parce que ça ressemble pas mal au VBA.
    et dans dans ce macro, je doit déterminer quelle fenêtre d'une autre application est au 1er plan et ensuite déterminer les coordonnées (par rapport au coin en haut a gauche de l'écran) de l'élément qui a le focus.
    Je doit dire que j'ai énormément de mal a le faire ça.

  5. #5
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Pas etonnant, c'est du niveau expert +
    Une seule solution, passer par les api de windows.

    Ce code est extrait de Api-Guide

    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
    'This Project needs
    '- two timers, interval=100
    '- a button
     
    'in general section
    Private Type POINTAPI
        x As Long
        y As Long
    End Type
     
    Private Declare Function GetActiveWindow Lib "user32" () As Long
    Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
     
    Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
    Private Sub Form_Load()
        Timer1.Interval = 100
        Timer1.Enabled = True
        Timer2.Interval = 100
        Timer2.Enabled = True
        Command1.Caption = "Draw Text"
    End Sub
    'This will draw an Ellipse on the active window
    Sub Timer1_Timer()
        Dim Position As POINTAPI
        'Get the cursor position
        GetCursorPos Position
        'Draw the Ellipse on the Screen's DC
        Ellipse GetWindowDC(0), Position.x - 5, Position.y - 5, Position.x + 5, Position.y + 5
    End Sub
    Sub Command1_Click()
        'KPD-Team 1998
        'URL: http://www.allapi.net/
        'E-Mail: KPDTeam@Allapi.net
     
        Dim intCount As Integer, strString As String
        strString = "Cool, text on screen !"
        For intCount = 0 To 30
            'Draw the text on the screen
            TextOut GetWindowDC(0), intCount * 20, intCount * 20, strString, Len(strString)
        Next intCount
    End Sub
    Private Sub Timer2_Timer()
        'Draw the text to the active window
        TextOut GetWindowDC(GetActiveWindow), 50, 50, "This is a form", 14
    End Sub

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 54
    Par défaut
    Merci pour toutes vos reponses...........
    ça m'a pas mal aidé, j'ai compris quelques trucs (comme par exemple que je n'ai pas encore le niveau pour faire cela, mais je ne baisse pas les bras........lol).

    Je continu a bosser dessus, si j'arrive au bout, j'en ferais profiter la communauté........

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bouton moche sous IE, probleme de Focus
    Par nicottin dans le forum Mise en page CSS
    Réponses: 12
    Dernier message: 30/08/2007, 14h43
  2. probleme de focus
    Par L4BiN dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 02/03/2007, 09h54
  3. probleme avec focus sous ie du flash
    Par éloi_75 dans le forum Flash
    Réponses: 15
    Dernier message: 22/02/2007, 23h27
  4. Surment un probleme de focus ?
    Par quentingsc dans le forum VB 6 et antérieur
    Réponses: 20
    Dernier message: 04/02/2007, 18h34
  5. [C#] Probleme de focus
    Par kenzo080 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 27/01/2006, 15h58

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