Msgbox avec focus

Blackbird01 Messages postés 26 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 1 juin 2006 - 25 mai 2004 à 21:21
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 - 28 mai 2004 à 21:42
Comment je peux enlever le focus qui apparait sur les msgbox quand on viens de cliquer dessus. J'aimerais que apres avoir appuié sur mon bouton, un msgbox apparaisse et puis que l'on doive clique sur ok pour l'enlever sans qu'on puisse l'enlever en appuyant sur entrer. J'espère que vous avez compris :) Merci d'avance

14 réponses

Blackbird01 Messages postés 26 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 1 juin 2006
25 mai 2004 à 21:22
Oups, ma question est que dois-je mettre comme source pour enlever le focus des msgbox.
0
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
25 mai 2004 à 21:33
Tu peux essayer de donner le focus à une autre app, comme la barre des taches, comme elle est toujours au premier plan, sa aura pas d'effet sur ton prog. Utilise l'api : Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
Apres faut un code pour trouver le handle de la taskbar, cherche sur le site et au pire des cas, je te le fait

@Z3RtY25 ==
0
Blackbird01 Messages postés 26 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 1 juin 2006
25 mai 2004 à 21:46
Merci mais j'y connais rien en api comment on fait ?
0
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
26 mai 2004 à 00:17
Eh man, dans le monde de la programmation, faut chercher à comprendre sinon t'apprendra jamais rien ;)
D'ailleur c'est partout comme ça en fait
Aller t'a 24heures pour chercher et demain soir si tu voit pas, je te le met ;)

@Z3RtY25 ==
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Blackbird01 Messages postés 26 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 1 juin 2006
26 mai 2004 à 18:14
Moi je veux bien chercher sur ce point là ca me derange pas mais bon je sais pas quoi chercher car je sais pas ce qu'est un handle, sur le forum j'ai trouver que c'etait des objets qui se trouve dans les programmes mais tu me dis chercher un code pour trouver le handle de la taskbar. lol j'ai rien compris. :(
0
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
26 mai 2004 à 19:29
Le handle, c'est en fait un numero qualifiant un objet, une fenetre, un bouton, une textbox etc etc
La taskbar (barre des taches), qui est aussi une fenetre, en possede donc aussi un. Je vais te faire le code de suite pour le trouver.

@Z3RtY25 ==
0
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
26 mai 2004 à 19:40
Comme promis :

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Sub Form_Load()
Dim WinWnd As Long
WinWnd = FindWindow("Shell_TrayWnd", Ret)
MsgBox WinWnd
End Sub

@Z3RtY25 ==
0
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
26 mai 2004 à 19:41
Oups petit probleme, remplace de RET de la ligne WinWnd = FindWindow("Shell_TrayWnd", Ret) par vbNullString

@Z3RtY25 ==
0
Blackbird01 Messages postés 26 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 1 juin 2006
27 mai 2004 à 18:38
Au lancement de mon programme, un message avec le numero du handle apparait (je pense) mais ca ne resouds pas mon probleme qui est que je voudrais que l'on ne puisse pas valider un msgbox avec le clavier (en appuyant sur entrer).
0
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
27 mai 2004 à 19:16
Je viens me m'apercevoir qu'en fait, ça n'ira pas.
Tu peux essayer de te tourner sur des sources verrouillant les touches du clavier sur le site, en général c'est par un hook.
Je ne vois pour l'instant d'autres solutions :(

@Z3RtY25 ==
0
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
27 mai 2004 à 19:18
En fait ce que je voulai dire, c'est que tu verrouille les touches avant l'apparition du msgbox, et tu déverouille quand elle est masquée. Cad que tu aurai un code de ce genre :

Private TaSub
verouiller touches
msgbox "ton message"
déverouiller touches
end sub

@Z3RtY25 ==
0
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
27 mai 2004 à 19:45
J'ai pensé à une autre solution, a la place d'utiliser une msgbox standard dans ton code, tu utilise une fenetre affichée en modale (cad qu'elle a la priorité sur tout ton app, si tu quitte pas, t'a pas acces au reste du prog), et tu lui fait un style de msgbox, et sur le boutton ok, tu vérifie par l'évenement mousedown que sa n'es pas une touche qui est pressée mais sa souris, ci c'est celle ci, alors la suite de ton prog s'éxécute, si c'est une touche clavier, alors elle reste affichée.

@Z3RtY25 ==
0
Blackbird01 Messages postés 26 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 1 juin 2006
28 mai 2004 à 19:08
C bien joli tous ca et je t'en remerci mais je debute j'ai lu qu'un livre de visual basic et j'ai regarder des site pour continuer a apprendre mais tou les truc du genre API windows ou comment bloquer le clavier je sais po faire. Coment je peux bloquer le clavier ? stp Merci grandement de ton aide. :big)
0
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
28 mai 2004 à 21:42
Beih, sa dépend déja du systeme que tu vise, regarde sur le site, dans les sources, il y a plusieurs exemples pour differents systemes ;)

@Z3RtY25 ==
0
Rejoignez-nous