Accueil > > > POSITIONNER LES MESSAGESBOX OÙ L'ON VEUT
POSITIONNER LES MESSAGESBOX OÙ L'ON VEUT
Information sur la source
Description
Je précise que ce code n'est pas de moi
Source
- Déclaration des API
- Public Declare Function UnhookWindowsHookEx Lib "user32" ( ByVal hHook As Long) As Long
- Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
- Public Declare Function GetCurrentThreadId Lib "kernel32" () 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 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
-
- ' Déclaration des constantes
- Public Const GWL_HINSTANCE = (-6)
- 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
-
- ' Une variable globale
- Public lgHook As Long
-
- Function WinProc(ByVal lMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
- ' On attend uniquement l'évènement HCBT_ACTIVATE
- ' qui indique l'affichage de la fenêtre
- If lMsg = HCBT_ACTIVATE Then
- ' Positionne la fenêtre aux coordonnées (100,100)
- SetWindowPos wParam, 0, 100, 100, 0, 0, SWP_NOSIZE Or SWP_NOZORDER Or SWP_NOACTIVATE
- ' Rend la main au système
- UnhookWindowsHookEx lgHook
- End If
- WinProc = False
- End Function
-
-
- 'Dans la procédure où est affiché la MsgBox, il faut mettre ce code là :
- Dim lgInst As Long, lgId As Long
- ...
- lgInst = GetWindowLong(Me.hwnd, GWL_HINSTANCE)
- lgId = GetCurrentThreadId()
- ' Défini la fonction de sous-classement
- lgHook = SetWindowsHookEx(WH_CBT, AddressOf WinProc, lgInst, lgId)
- ' Affiche la boîte de message à la position donnée dans WinProc
- MsgBox ...
-
Déclaration des API
Public Declare Function UnhookWindowsHookEx Lib "user32" ( ByVal hHook As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function GetCurrentThreadId Lib "kernel32" () 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 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
' Déclaration des constantes
Public Const GWL_HINSTANCE = (-6)
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
' Une variable globale
Public lgHook As Long
Function WinProc(ByVal lMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
' On attend uniquement l'évènement HCBT_ACTIVATE
' qui indique l'affichage de la fenêtre
If lMsg = HCBT_ACTIVATE Then
' Positionne la fenêtre aux coordonnées (100,100)
SetWindowPos wParam, 0, 100, 100, 0, 0, SWP_NOSIZE Or SWP_NOZORDER Or SWP_NOACTIVATE
' Rend la main au système
UnhookWindowsHookEx lgHook
End If
WinProc = False
End Function
'Dans la procédure où est affiché la MsgBox, il faut mettre ce code là :
Dim lgInst As Long, lgId As Long
...
lgInst = GetWindowLong(Me.hwnd, GWL_HINSTANCE)
lgId = GetCurrentThreadId()
' Défini la fonction de sous-classement
lgHook = SetWindowsHookEx(WH_CBT, AddressOf WinProc, lgInst, lgId)
' Affiche la boîte de message à la position donnée dans WinProc
MsgBox ...
Conclusion
il vient d'un autre site vb francophone...
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Position d'affichage MessageBox [ par Marneus73 ]
Bonjour à tousEst-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
Position de ScrollBars [ par Marneus73 ]
Bonjour à tous,Est il possible d'empecher un utilisateur de cliquer sur un bouton tant qu'il n'a pas lu tout le texte contenu dans une RichtextBox ? A
Fermer les MessageBox [ par samilol ]
Bonjour a tous,Est ce q'il y a un moyen avec un code VB de fermer des messagebox des autres aplications. Exemple: Avec mon code je lance une aplicatio
[Probleme] - Bouton renvoyant une donnée dans une case texte. [ par telodoo ]
Bonjour,Je souhaite faire un programme d'apprentissage a la strategie du petit tapis au Poker Texas Hold'em. Voici comment se presente celui-ci :<br /
Obtenir la position du curseur à l'écran ? [ par Arnal88 ]
Bonjour,Je travaille sur un programme en VB2005 qui possède une NotifyIcon dans la barre des tâches.Lorsque je clique sur l'icône, je fais apparaître
En même temps [ par Fyerrblad ]
Salut tt le monde.Je suis en train de créer un programme qui enregistre la position du curseur (X dans ListBox1 et Y dans ListBox2) en cliquant sur Bu
Afichage Bizare !? [ par Marneus73 ]
Bonjour à tous,Petit probleme, je voudrais afficher dans une MessageBox un SubItem séléctionné par une valeur i dans une ListView.J'utilise donc : Aff
creer une image [ par waspy59 ]
bonjour,voila g creer une application pour la creation de Codebarre industriel (automate d'analyse medicale). je souhaite imprimer ces CB sur une impr
Modifier position curseur [ par Finality ]
Bonjour tout le monde,me voilà de retour avec une nouvelle question ^^ en fait dans mon formulaire, j'utilise un label à qui j'assigne ce code : Pr
mise àjour [ par youba11 ]
Bonsoir a tous,je suis debutant en vb 2005, mon probleme est le suivant: je developpe une petite application de courier pour mon travail et j'ai une e
|
Derniers Blogs
[TECHDAYS 2010] #03 - WEB CONTENT MANAGEMENT SOUS SHAREPOINT 2010[TECHDAYS 2010] #03 - WEB CONTENT MANAGEMENT SOUS SHAREPOINT 2010 par pierre
Stephane Cordonnier de MCNext nous présente les fonctionnalités Web Content Management (WCM) sous SharePoint 2010. Qu'est-ce que le WCM ECM, GED, RM, WCM c'est quoi Plateforme SharePoint Versions SharePoint 2010 SharePoint Fondation...
Cliquez pour lire la suite de l'article par pierre [DESIGN PATTERNS] PARTIE 2: DIP: DEPENDENCY INVERSION PRINCIPLE[DESIGN PATTERNS] PARTIE 2: DIP: DEPENDENCY INVERSION PRINCIPLE par tja
C'est le dernier principe des principes du Design Orienté Objet (The Principles of Object Oriented Design) fondés par Robert C. Martin plus connu sous le pseudonyme d'Uncle Bob.
l'image empruntée de LosTechies.
Je ne traite pas les principes dans...
Cliquez pour lire la suite de l'article par tja TECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURSTECHDAYS PARIS 2010 : SHAREPOINT 2010 POUR LES DéVELOPPEURS par ROMELARD Fabrice
Animé par: Laurent Cotton Le développement dans SharePoint 2010 passe par plusieurs axes qui seront évoqués dans cette session, mais plus particulièrement les développements simples lié au besoin Business Business Connectivity Services Ce BCS es...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOURTECHDAYS PARIS 2010 : PLEINIèRE DERNIER JOUR par ROMELARD Fabrice
Cette session est la dernière pleinière de ces 3 jours de TechDays Paris 2010. Généralement, cette troisième journée est plus axée sur l'avenir vu par Microsoft. Après un retour sur l'avenir vu par la Science Fiction ou par ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante
Forum
RE : VB.NETRE : VB.NET par nhervagault
Cliquez pour lire la suite par nhervagault
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|