Api SetWindowPos

Signaler
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
-
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
-
Salut... Je veux que mon programme soit toujours en avant des autres programmes. Par exmeple si j'ouvre Word et bien me programme se trouverra toujours en premier plan et Word sera actif mais en second plan.

Quelqu'un m'a répondu cela

'Il faut utiliser l'api SetWindowPos un petit exemple tiré de l'API Guide :


Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40


Private Declare Sub 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)


Private Sub Form_Activate()
'Set the window position to topmost
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
'End Sub

J'intègre ce code mais rien ne fonctionne....

Quelqu'un peut m'aider pour me dire quoi fait quoi et pourquoi j'ai un Privare Declare sans code et sans end sub.
De plus Qu'est ce que le l'API Guide et pour uitliser l'API SetWindowPos, est ce que je doit aller setter quelque chose ou bien c'est seuelemtn un type de code...

Enfin je suis pas mal perdu et je dois absolument mettr ece code afion que mon prog fonctionne correctement...

Merci d'avance..

3 réponses

Messages postés
586
Date d'inscription
jeudi 18 septembre 2003
Statut
Membre
Dernière intervention
13 février 2008
2
les apis sont des declarations qui font appel a d'autres fonctions dans d'autres bibliotheque comme les dll les exe les ocx etc...
setwindowpos et une fonction de user32
tu devras mettre la declaration dans la partie generale du code de la form si privee
sinon dans un module.

<HR>
regarde cette source
http://www.vbfrance.com/code.aspx?id=26460
dans la checkbox il y a l'appel de cet api
Life is short...Learn more
Copy Rights <> Rights to Copy
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
28
- ça va marcher quand tu seras compilé.

- enlève le rem devant le End Sub (sinon ça a du faire une erreur ?)

- les déclarations se mettent en dehors des procédures (au niveau général)

- l'API guide c'est un logiciel a télécharger, il est gratuit, un peu vieux mais toujours pratique, avec des exemples pour utiliser les API's

Daniel
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
il me semble que c'est moi qui t'avais répondu avec ce code il y a 2/3 jours.



Ce code marche très bien, il me sert tout les jours.



Je n'ai pas grand chose de plus à dire par rapport à mes camarades, si ce n'est :



- les lignes Private declare ........ ByVal X as long ......... sont à écrire sur une seule ligne dans ton code.
- idem pour SetWindowPos ......... SWP_NOMOVE.........

- ce code tel quel doit etre intégré dans la feuille qui doit etre au premier plan, sinon il faut l'adapter un petit peu

- Bien supprimer l'appostrophe (le rem comme dit Daniel) devant le END SUB

- quant aux options de la fonction SetWindowPos :



Const HWND_TOPMOST = -1 '--> au Premier Plan
Const HWND_NOTOPMOST = -2 '--> à l'arriere plan
Const SWP_NOSIZE = &H1 '--> pas de redimentionnement de la fenêtre
Const SWP_NOMOVE = &H2 '--> pas de déplacement de la fenêtre
Const SWP_NOACTIVATE = &H10 '--> fenêtre inactive
Const SWP_SHOWWINDOW = &H40 '--> affichage de la fenêtre




Pour l'API Guide, si tu est intéressé,
l'adresse du site était dans les commentaires au debut de la routine
activate dans le code que j'avais posté, je l'avais laissé pour ça
entre autre (et pour cité la source aussi, c'est la moindre des choses
--> copyright en quelque sorte).



J'espère que cette fois-ci, tu t'en sortira. sinon reviens nous voir,
la porte est ouverte et il y a toujours quelqu'un au comptoir (de
l'accueil bien sur).




Si le cerveau était assez simple pour que nous puissions le comprendre,

nous serions assez bête pour ne pas le comprendre malgré tout.