Pour les pros de l'API WINDOWS

cs_Patrice Messages postés 6 Date d'inscription mercredi 23 mai 2001 Statut Membre Dernière intervention 27 juin 2002 - 27 juin 2002 à 07:52
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

5 réponses

fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 3
27 juin 2002 à 08:04
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>
0
cs_Patrice Messages postés 6 Date d'inscription mercredi 23 mai 2001 Statut Membre Dernière intervention 27 juin 2002
27 juin 2002 à 11:17
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
0
fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 3
27 juin 2002 à 12:48
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>
0
cs_Patrice Messages postés 6 Date d'inscription mercredi 23 mai 2001 Statut Membre Dernière intervention 27 juin 2002
27 juin 2002 à 14:08
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 3
27 juin 2002 à 14:40
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>
0
Rejoignez-nous