Position d'affichage MessageBox

Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008 - 18 sept. 2007 à 23:48
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 19 sept. 2007 à 09:15
Bonjour à tous
Est-il possible de changer la position d'affichage d'une MessageBox ? Par exemple au lieu de l'afficher au milieu de l'écran, la mettre à des coordonnées définies ?
Merci d'avance.
A voir également:

5 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
19 sept. 2007 à 01:00
salut,

tu trouveras un exemple en VB6 en cherchant dans les codes de jmfmarques
plus qu'à adapter pour DotNet
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
19 sept. 2007 à 07:23
Salut,
J'ai trouvé ce code:

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MessageBox.Show("ok")
    End Sub
    Public Const SWP_NOSIZE = &H1
    Public Const SWP_NOZORDER = &H4
    Public Const SWP_NOACTIVATE = &H10
    Public Const HCBT_ACTIVATE = 5
    Public Const WH_CBT = 5

    Public hHook As Long
    Public affX As Long
    Public affY As Long
    Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
    Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
    Public Declare Function GetCurrentThreadId Lib "kernel32" () As Long

    Public Function Position(ByVal Messg As Long, ByVal Hhandle As Long, ByVal afterhwnd As Long) As Long
        If Messg = HCBT_ACTIVATE Then
            'positionnement du msgbox :
            SetWindowPos(Hhandle, 0, affX, affY, 0, 0, SWP_NOSIZE Or SWP_NOZORDER Or SWP_NOACTIVATE)
            UnhookWindowsHookEx(hHook) 'Déchargement
        End If
    End Function
End Class

Pourrait on m'expliquer brievement comment cela fonctionne t'il ?
Merci d'avance.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
19 sept. 2007 à 08:51
Une autre solution consiste aussi à te faire ta propre messagebox à partir d'une form classique. Comme ça tu maitrise tout ce que tu veux maitriser (couleur, position, dimension, ......).

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
19 sept. 2007 à 09:06
Merci, c'est une bonne solution.
Par contre, je voulais afficher une vingtaine de fenetre, et je sais pas si c'est une bonne idée de créer 20 forms !
Personne ne sait comment fonctionne le code ci dessus ?
Merci
0

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

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
19 sept. 2007 à 09:15
pourquoi 20 forms ?

Une form configurable comme la messagebox, tu passe en parametre (ou mieux sous forme de propriétés), le texte, le titre, les boutons, la (les) couleurs, la position, les dimensions, .............. tout ce que tu veux. C'est ensuite dans le code de la form que tu gere tous les cas possibles et que tu affiche ta form en fonction.

J'en avais fait une, ya quelques années, mais malheureusement je n'ai plus le code sous la main. Mais c'est pas compliquer à faire.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
Rejoignez-nous