Acceder à l'application mère pendant un message box

Albadeath Messages postés 18 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 28 mars 2006 - 22 mars 2006 à 17:23
Albadeath Messages postés 18 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 28 mars 2006 - 23 mars 2006 à 11:35
Salut,

J'utilise l'api message box pour faire afficher une boite de dialogue directement sous une application (Lotus Notes), ce que ne permet pas msgbox de VBA. Pour cela j'utilise le handle de Lotus comme ceci (je n'ai pas mis les déclarations ici) :


HandleLotus = FindWindow("NOTES", vbNullString)
resultat = MessageBox(HandleLotus, "Voulez-vous envoyer le mail?", "Validation", MB_ICONQUESTION + MB_YESNO)
If (resultat = 6) Then
SendKeys "%&", True 'envoi du courrier Alt + 1
Else
'rien
End If

Cela fonctionne à merveille mais j'aimerai que ce soit possible d'acceder à la fenêtre de lotus pendant l'affichage du message (ce dernier se mettrai desactiverai ou se réduirai) plutot que de devoir cliquer sur un des deux boutons.
Y-a-t-il une solution?

Autre question : Peut-on changer le libellé des bouton de la message box? Je pense que non vu que c'est une API et donc c'est pas modifiable.

Merci d'avance.

5 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
22 mars 2006 à 18:49
Bonjour,

Pour le libellé, je suppose que tu parle du titre:

resultat = MessageBox(HandleLotus, "Voulez-vous envoyer le mail?", "Validation", MB_ICONQUESTION + MB_YESNO, "C'est le titre")

Ce qu'il te met entre crochet, c'est les arguments optionnels.

Pour ce qui est de la modalité, tu peux utiliser la "vrai" MessageBox, celle des API, celle qui est appelé par VB6.

En modifiant le handle, ça passe sans problème:

Private Declare Function MessageBox Lib "user32.dll" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal dwType As Long) As Long

Call messageBox(0, "texte", "titre", MB_OkCancel)

J'éspère ne pas avoir fait de faute de frappe...
0
radcur Messages postés 282 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 15 août 2012 2
23 mars 2006 à 03:43
Salut

je ne comprend pas... tu fais apparaitre un Msgbox mais tu cherche un truc pour le contourner. Alors pourquoi le faire apparaitre ?
0
Albadeath Messages postés 18 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 28 mars 2006
23 mars 2006 à 09:34
Salut,
justement j'utilise la vraie MessageBox. C'est vrai qu'en mettant le handle a 0 la message box est dissociée de lotus et il y a une nouvelle fenêtre dans la barre des tâches. Mais le problème c'est qu'elle est crée "réduite" alors que je voudrai la faire afficher directement devant Lotus. Je vais essayer de tester ça avec d'autres fonctions.

En ce qui concernent les libellé, je parle du titre des boutons, je voudrais modifier les oui non.

Pour radcur: Effectivement c'est un peu bizarre comme fonctionnement. Le truc c'est que pour faire simple mon automate rempli une fiche sous lotus et lorsqu'il a terminé son petit travail je souhaite faire afiicher un message lui demandant d'enregistrer ou de modifier. S'il fait modifier, il pourrait acceder à la fiche fraichement créee puis se repositionner sur le message box pour cliquer sur enregistrer.
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
23 mars 2006 à 10:00
Milles excuse Albadeath, j'avais même pas vu... Elle est crée réduite ? Pas chez moi...

Sinon, tu peux simplement recoder la fonction MessageBox. Une petite form, 2 boutons... Bon l'icone, faut la retrouver.
0

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

Posez votre question
Albadeath Messages postés 18 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 28 mars 2006
23 mars 2006 à 11:35
Ok je vais voir c'est un peu galère cette histoire. Merci
0
Rejoignez-nous