COMMENT FAIRE POUR QUE MON FORMULAIRE SOIT TOUJOURS VISIBLE AU PREMIER PLAN

huelce Messages postés 45 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 28 juillet 2004 - 27 juin 2004 à 05:21
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 - 27 juin 2004 à 09:21
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/24042-comment-faire-pour-que-mon-formulaire-soit-toujours-visible-au-premier-plan

cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
27 juin 2004 à 09:21
>> DIVANCED, ce code est déjà sur le site... rien de nouveau donc si ce n'est "encombrer" le site avec un Xème exemplaire...

Par contre, je tâcherai de tester le code d'huelce. J'avais aussi cherché une solution à ce problème de premier plan et c'est jpthomasset qui m'a donné une solution (sans api).
Voir sa réponse sur le forum http://www.vbfrance.com/forum.v2.aspx?ID=246047
huelce Messages postés 45 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 28 juillet 2004 1
27 juin 2004 à 05:21
Salut, ce code "topmost" est assez connu, pour aller plus loin voici un 'truc' que j'ai cherché très longtemps et qui pourra t'être utile.
Quand tu ouvres une form à partir d'une autre, par ex. une boite d'outils (ex. typique), celle-ci reste au premier plan de la form mère grace au topmost, mais commenet faire pour qu'elle reste uniquement au dessus de la form mère, et pas de tous les autres prog ouverts. Ceci permet aussi de la réduire automatiquement quand tu réduit la form-mère.
Mon explication est assez confuse... mais teste et tu comprendras vite.

------------------------------
Dans un module :

Public Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Public Const GWL_HWNDPARENT As Long = -8

-------------------------------------------
Dans la form fille (la boite à outils) :

Dans les déclarations :
Private OriginalParentHwnd As Long

Dans le Load :
OriginalParentHwnd = SetWindowLong(Me.hwnd, GWL_HWNDPARENT, FormMère.hwnd)

Dans le Unload :
Dim R As Long
R = SetWindowLong(Me.hwnd, GWL_HWNDPARENT, OriginalParentHwnd)
Rejoignez-nous