Les Snippets

Connexion

Afficher un formulaire AlwaysOnTop et sans Focus (comme une popup messenger)

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 10/05/2008 20:20:36 et initié par PCPT [Liste]
Date de mise à jour : 10/05/2008 20:59:28
Vue : 6366
Catégorie(s) : API, Trucs & Astuces, Divers, WinForm
Langages dispo pour ce code :
- VB6
- VB6



Langage : VB6
Date ajout : 10/05/2008
Posté par PCPT [Liste]
DateMAJ : 10/05/2008
Private Type RECT
    Left    As Long
    Top     As Long
    Right   As Long
    Bottom  As Long
End Type
Private Type POINTAPI
    X       As Long
    Y       As Long
End Type
Private Type WINDOWPLACEMENT
    Length           As Long
    flags            As Long
    showCmd          As Long
    ptMinPosition    As POINTAPI
    ptMaxPosition    As POINTAPI
    rcNormalPosition As RECT
End Type
Private Const SWP_NOSIZE        As Long = &H1
Private Const SWP_NOMOVE        As Long = &H2
Private Const SWP_NOACTIVATE    As Long = &H10
Private Const SW_SHOWNOACTIVATE As Long = 4&
Private Const HWND_TOPMOST      As Long = (-1&)
'
Private Declare Function GetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Private Declare Function SetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As LongByVal 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 Sub TopMostNoFocus(ByVal lHandle As Long)
    Dim tWIN As WINDOWPLACEMENT
'   récupère position / flag
    tWIN.Length = Len(tWIN)
    Call GetWindowPlacement(lHandle, tWIN)
'   change le flag FOCUS au type
    tWIN.showCmd = SW_SHOWNOACTIVATE
'    applique NOFOCUS à  la fenêtre
    Call SetWindowPlacement(lHandle, tWIN)
'   applique premier plan permanent
    Call SetWindowPos(lHandle, HWND_TOPMOST, 0&, 0&, 0&, 0&, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOACTIVATE)
End Sub

Remarque :
copiez le code ci-dessus dans un module et appliquez le style dans le Form_Load par Call TopMostNoFocus(Me.hWnd)
Langage : VB6
Date ajout : 10/05/2008
Posté par PCPT [Liste]
Private Const SWP_NOSIZE        As Long = &H1
Private Const SWP_NOMOVE        As Long = &H2
Private Const SWP_NOACTIVATE    As Long = &H10
Private Const SW_SHOWNOACTIVATE As Long = 4&
Private Const HWND_TOPMOST      As Long = (-1&)
'
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As LongByVal 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
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As LongByVal nCmdShow As Long) As  Long

Public Sub TopMostNoFocus(ByVal lHandle As Long)
'   applique NOFOCUS à la  fenêtre
    Call ShowWindow(lHandle, SW_SHOWNOACTIVATE)
'   applique premier plan permanent
    Call SetWindowPos(lHandle, HWND_TOPMOST, 0&, 0&, 0&, 0&, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOACTIVATE)
End Sub

Remarque :
idem, autre API

Snippets en rapport avec : Afficher, Popup, Fenêtre, Focus, Topmost



Codes sources en rapport avec : Afficher, Popup, Fenêtre, Focus, Topmost

{Javascript / DHTML} THE WWT: WEB WIDGETS TOOLKIT
A la base je voulais créer un plugin eclipse transformant une interfarce swt en java en interface we...

{Javascript / DHTML} MISE À JOUR D'UNE LISTE DÉROULANTE VIA UN POPUP
Je remercie jojo sans qui cette source n'existerai pas ! Je recherchais une mise à jour seulement d...

{C / C++ / C++.NET} DROPDOWN LISTBOX (WIN32)
Petit exemple d'une solution trouvée suite à cette discussion sur le forum: http://www.cppfrance.co...

{Visual Basic, VB6, VB.NET, VB 2005} FOCUS D'UNE FENÊTRE (ÉVÈNEMENTS GET LOST PAR SUBCLASSING)
Bonjour, Comment savoir réellement quand une Form perd ou retrouve son focus... il faut intercepte...

{ASP / ASP.NET} LIEN DYNAMIQUE OUVRANT UNE PAGE POPUP
Cette méthode permet d'ajouter un lien dynamiquement à l'aide du code asp.Net. Le but est d'ouvrir...

{Visual Basic, VB6, VB.NET, VB 2005} RENDRE UNE FENETRE MODALE
Comment rendre un formulaire Modale ? MonForm <= Votre Formulaire...

{Visual Basic, VB6, VB.NET, VB 2005} APPLI GOOGLE MAPS
Application pour visualiser une adresse dans google maps * recherche d'un lieu / adresse et aff...

{Visual Basic, VB6, VB.NET, VB 2005} REPOSITIONNER UNE SÉLECTION DANS UNE FENÊTRE WORD
Quand on utilise une macro VBA qui fait une recherche dans un document par Selection.Find.Execute, W...

{Javascript / DHTML} AJOUTER/SUPPRIMER CLASSE AVEC JQUERY
C'est mon premier script donc s'il vous plait, soyez indulgent... Description: Un script qui perme...

{PHP} FENÊTRE PSEUDO MODALE INCORPORÉE DANS UN SCRIPT PHP SIMPLIFIÉ AU MAXIMUM (SANS UTILISATION DE BIBLIOTHÈQUE JAVASCRIPT)
Classique affichage d'une fenêtre pseudo modale. Lorsque l'on clique sur un image vignette, la fenêt...