begin process at 2010 02 10 16:28:47
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Message Box

 > POSITIONNER LES MESSAGESBOX OÙ L'ON VEUT

POSITIONNER LES MESSAGESBOX OÙ L'ON VEUT


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Message Box Classé sous :position, messagebox Niveau :Initié Date de création :17/05/2001 Vu :5 001

Auteur : ADN733R

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 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

Source avec Zip ZONE IP ENFIN [ACTIVEX]
Source avec Zip UN GÉNÉRATEUR DE DICTIONNAIRE[DEBUGÉE]
AJOUT DE CLÉS CRYPTÉES DANS LE REGISTRE
PLUS RAPIDE QUE LE TRI À BULLE, LE TRI PAR SELECTION
Source avec Zip DESSIN (AVEC LA SOURIS)

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) MESSAGE BOX A CHOIX MULTIPLE par mafieulemouton
Source avec Zip Source avec une capture Source .NET (Dotnet) MSGBOX MULTILINGUE par Blodox
Source avec Zip Source avec une capture AUTRE PETITE FAQ par JLB59
Source avec Zip Source avec une capture INDEXER LE TEXTE D'UN LISTBOX (POUR UNE FAQ PAR EXEMPLE) par JLB59
Source avec Zip TEXTE DÉFILANT DANS LE STYLE BANNIÈRE (OCX) par by2k

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture ADAPTER UNE PICTURE BOX À DES COORDONNÉES par Flocreate
Source avec Zip Source .NET (Dotnet) FENÊTRE D'ATTENTE AVEC BARRE DE PROGRESSION par casy
Source avec une capture Source .NET (Dotnet) SCROLL DE CAMERA DANS LE VIEWPORT par Londonic
Source avec Zip Source .NET (Dotnet) INPUTBOX PERSONNALISABLE AVEC LE CODE SOURCE VB par Patrice99
Source avec Zip Source avec une capture GESTION DE LA POSITION DE LA SOURIS par Dav76df

Commentaires et avis

Commentaire de madVinz le 16/07/2002 17:23:06

DasFunky -> il me semble que les AddressOf ne marchent que une fois le projet compilé, c'est peut-etre pour ca que ca ne marche

Commentaire de anthoda le 04/04/2005 16:31:31

J'ai tester ce code mais les addressof ne marchent pas, avez vous réussi à le corriger?

Commentaire de Renfield le 24/02/2006 15:28:53 administrateur CS

Fonctionne impeccablement....

 Ajouter un commentaire


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


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales