Cacher une Form de la barre des tâches [Résolu]

Messages postés
218
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
15 novembre 2009
- - Dernière réponse : 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
Afficher la suite 

11 réponses

Meilleure réponse
Messages postés
218
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
15 novembre 2009
1
3
Merci
Bon j'abandonne, sa sert a rien de m'expliquer 15 fois.

kakenette

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 125 internautes nous ont dit merci ce mois-ci

Commenter la réponse de kakenette
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
3
0
Merci
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.
Commenter la réponse de jmf0
Messages postés
218
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
15 novembre 2009
1
0
Merci
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
Commenter la réponse de kakenette
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
3
0
Merci
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
Commenter la réponse de jmf0
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
3
0
Merci
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 ...
Commenter la réponse de jmf0
Messages postés
218
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
15 novembre 2009
1
0
Merci
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
Commenter la réponse de kakenette
Messages postés
218
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
15 novembre 2009
1
0
Merci
(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
Commenter la réponse de kakenette
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
3
0
Merci
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.
Commenter la réponse de jmf0
Messages postés
218
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
15 novembre 2009
1
0
Merci
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
Commenter la réponse de kakenette
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
3
0
Merci
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.
Commenter la réponse de jmf0
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
3
0
Merci
En effet : à rien, apparemment
Commenter la réponse de jmf0