Cacher une Form de la barre des tâches

Résolu
kakenette Messages postés 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 - 1 nov. 2009 à 18:27
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 - 1 nov. 2009 à 20:52
Bonjours, Voilà j'ai cherché un peu sur Internet mais sans succès; J'aurai voulu savoir si il existe un moyen de cacher une Form sans passer par Form1.ShowInTaskbar = False ? Peut être un API pourrai le faire en connaissant le hWnd ?

Merci. Joyeux halloween.


kakenette

11 réponses

kakenette Messages postés 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 1
1 nov. 2009 à 20:49
Bon j'abandonne, sa sert a rien de m'expliquer 15 fois.

kakenette
3
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
1 nov. 2009 à 19:04
Bonjour,

Regarde, de la 1ère à la dernière, chacune des propriété de ton Form (dans la fenêtre des propriétés, tout simplement). Le nom seul de l'une d'entre elles est pour le moins révêlateur ... (plus que "parlant", même) ...
Bonne examen de ta fenêtre des propriétés.
0
kakenette Messages postés 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 1
1 nov. 2009 à 19:34
Non, il n'est pas possible tu n'a pas du comprendre le problème... Bien évidement que j'ai regarder. Je ne peux PAS passer par une propriété VB c'est pour ca que faut que je fasse appelle aux API. Je pense a "SetWindowLong" qui pourrait éventuellement le faire...


kakenette
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
1 nov. 2009 à 20:09
Bon...

Je n'en vois pas l'utilité (le faire en mode exécution ? et pas en mode création ? pourquoi ?..), mais si la chose te plait tant :

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
    (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
    (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_EXSTYLE = (-20)
Private Const WS_EX_APPWINDOW = &H40000

Private Sub Form_Load()
    SetWindowLong Me.hWnd, GWL_EXSTYLE, (GetWindowLong(hWnd, GWL_EXSTYLE) And Not WS_EX_APPWINDOW)
 End Sub
0

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

Posez votre question
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
1 nov. 2009 à 20:14
Et bien sûr, s'il s'agit d'un Form "ailleurs" (et là je vois mal où tu veux aller) :
remplacer Me.hwnd par toto, si toto est le handle du form concerné !
Amuse-toi, si tu veux ...
0
kakenette Messages postés 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 1
1 nov. 2009 à 20:18
Oui j'ai trouvé mais ça ne marche pas. Enfin ci, mais pas pour ce que je veux faire. :p Aller, j'explique: Enfaîte j'ai fait un Usercontrol tout simple, et je le sort du hwnd de la form de base avec SetParent hWnd, 0 pour faire un genre de nouvelle fenêtre autonome directement par le Usercontrol. Mais le problème c'est qu'il s'affiche dans la barre des taches avec aucun nom. =) J'essaye de le cacher mais je pense pas que sa soie possible de le cacher. Je ne cherche pas à donner un nom, mais à faire en sorte que le hwnd du Usercontrol ne se voie pas dans la barre des taches quand il est sortit de la Form. Il est également impératif que il soit en parent 0. Je vais trouver je trouve toujours, je trouverai une parade au pire.

kakenette
0
kakenette Messages postés 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 1
1 nov. 2009 à 20:21
(Ton 2eme messages vue après post): Non car la méthode dite ne marche pas si l'élément graphique du handle est déjà afficher.

kakenette
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
1 nov. 2009 à 20:33
Et pardi !
C'est le code de ton UserControl, qu'il te faut modifier....
Tu sais quoi, par ailleurs, kakenette ? Ici, nous aimons bien travailler en eau claire et qu'on nous donne d'emblée les données d'un problème (ce que ne fait pas ton 1er message).

Bonne correction ou completion du code de ton UserControl.
0
kakenette Messages postés 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 1
1 nov. 2009 à 20:39
Impossible. Il faut oublier par le Usercontrol. ca dépasse VB ;). J'ai déjà tout essayer, j'en est justement pas parler pour arriver a se que tu viens de me dire. :) VB ne gère par le hWnd du UserControl en temps que fenêtre et donc il ne sais pas que le Usercontrol est sortit de la fenêtre et donc n'a pas de propriété de fenêtre vue que se n'est pas une fenêtre. Je pense que je vais Hooker.


kakenette
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
1 nov. 2009 à 20:44
Je persiste :
tu as dit :
j'ai fait un Usercontrol tout simple

Modifie-le donc (il est de toi) . C'est lui, qui est concerné, que tu lui attribues ou non un parent par la suite.
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
1 nov. 2009 à 20:52
En effet : à rien, apparemment
0
Rejoignez-nous