Marneus73
Messages postés344Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention27 octobre 2008
-
18 sept. 2007 à 23:48
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 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.
PCPT
Messages postés13280Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201848 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
Marneus73
Messages postés344Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention27 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
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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, ......).
Marneus73
Messages postés344Date d'inscriptionmercredi 24 janvier 2007StatutMembreDernière intervention27 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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.