Pour les pros de l'API WINDOWS

Messages postés
6
Date d'inscription
mercredi 23 mai 2001
Statut
Membre
Dernière intervention
27 juin 2002
- - Dernière réponse : fredlynx
Messages postés
662
Date d'inscription
mercredi 16 janvier 2002
Statut
Modérateur
Dernière intervention
16 octobre 2010
- 27 juin 2002 à 14:40
Bonjour tout le monde,

Je m'adresse aux dieux des API WIndows :

Vous connaissez tous ,sous Win2000 et Xp, le gestionnaire de taches, cette boite de dialogue qui à la particularité de "monter" par dessus toutes les autres fenêtres et d'avoir une priorité absolue, ben voila le problème, j'ai une feuille en étât "minimized" et je voudrais qu'elle adopte le même comportement quand on la "maximise". J'ai essayé avec les api SETWINDOWSPOS et SETWINDOWSFOREGROUND mais sans succés...

Qui viens à mon secours ???

Patrice CHAMPEY
Afficher la suite 

5 réponses

Messages postés
662
Date d'inscription
mercredi 16 janvier 2002
Statut
Modérateur
Dernière intervention
16 octobre 2010
0
Merci
lngWindowPosition = SetWindowPos(pFrm.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
ça ne marche pas ça ???

<center>[mailto:fredlynx@codes-sources.com ]
[csbar.aspx La CSBar Vous Connaissez ..?]</center>
Messages postés
6
Date d'inscription
mercredi 23 mai 2001
Statut
Membre
Dernière intervention
27 juin 2002
0
Merci
Non, avec ces paramétres la, la fenetre de passe pas audessus des autres et surtout avec les 4 zeros :
1 zero =x de la fenetre
2 zero =y de la fenetre
3 zero=largeur de la fenetre
4 zero=hauteur de la fenetre
donc les deux derniers empechent l'affichage de la fenetre, faut aux moins mettre la taille !!!

Mais je pense que ca coince plutot aux niveau du dernier arguments de cette api...

Cherchons encore !!!
Patrice CHAMPEY
Messages postés
662
Date d'inscription
mercredi 16 janvier 2002
Statut
Modérateur
Dernière intervention
16 octobre 2010
0
Merci
Ben je suis désolé mais pour mes applis que j'ai a moi ça me convient...
Pour info ma procédure complète ...

Private 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

Private Const HWND_TOP = 0
Private Const HWND_BOTTOM = 1
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2

Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2

Public Function PutWindowOnTop(pFrm As Form)
Dim lngWindowPosition As Long
lngWindowPosition = SetWindowPos(pFrm.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
End Function

Public Function RemoveWindowOnTop(pFrm As Form)
Dim lngWindowPosition As Long
lngWindowPosition = SetWindowPos(pFrm.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
End Function

Et appel dans :
Private Sub Form_Load()
PutWindowOnTop Me
End Sub

<center>[mailto:fredlynx@codes-sources.com ]
[csbar.aspx La CSBar Vous Connaissez ..?] </center>
Messages postés
6
Date d'inscription
mercredi 23 mai 2001
Statut
Membre
Dernière intervention
27 juin 2002
0
Merci
Un grand merci pour ta réponse, j'ai trouvé la solution à mon problème en passant un zero en dernier parametre dans cette api, dans ce cas la, la fenetre reste en permanence au premier plan et ce quoiqu'il arrive...

Merci encore et bonne prog...

Patrice CHAMPEY
Messages postés
662
Date d'inscription
mercredi 16 janvier 2002
Statut
Modérateur
Dernière intervention
16 octobre 2010
0
Merci
Erf vi dsl pour le détail moi je la fige aussi :)

<center>[mailto:fredlynx@codes-sources.com ]
[csbar.aspx La CSBar Vous Connaissez ..?]</center>