Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SHOWINTASKBAR = TRUE + BORDERSTYLE = 0-NONE


Information sur le tutorial

Catégorie :Système Date de création : 15/11/2005 21:44:05 Vu : 7 795 fois

Note :
3 / 10 - par 2 personnes
3,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note


Description

Voila déja quelque temps queje cherche comment faire apparaitre la fenetre dans la barre des tache avec la BorderStyle en None, Faute de trouvé mieux voici ma solution.
Certain dirons surement que avec XP ca marche sans mon tuto, je suis d'accord ca marche de temps en temps, jusqu' a ce que VB remarque le None dans Border Style et saque le STB (ShowinTaskBar).

Voilà ma solution ...

Tutorial

Avant tout Deux - Trois petites choses :

Il faut créer 2 fenetres , une qui serra Votre fenetre sans bordure que l'on appelle SBfrm et l'autre que l'on appelle Mini et
un bouton de minimisement dans SBfrm que l'n appelera minicmd
Certain s'en doute déjà : je passe par l'astuce de cacher la form SBfrm (sans la déchager) et mettre le Mini a la place dans le taskBar.
Voila donc Comment faire :

'Dans la SBfrm

Public STARMINI as Boolean

Private Sub minicmd_click()
   STARMINI = True
   mini.Visible = True
   mini.Caption = Me.Caption     'metre le titre de la form SBfrm dans la barre de tache
   mini.Icon = me.Icon                'metre l'icon de la form SBfrm dans la barre de tache
   Load mini
   mini.WindowState = vbMinimised
End Sub

'Dans Mini

Private Sub mini_Resize()
   If me.WindowState = vbNormal and STARMINI = False then
      SBfrm.Visible = True
      Me.Visible = False   
   end if

   If STARMINI = True then STARMINI = False
End Sub

FAQ (Foire aux questions)

Pourquoi STARMINI ?
   Le probleme d'invoquer mini est qu'il execute mini_resize() or a ce moment là si STARMINI n'existe pas votre fenetre mini va se croire encore en VbNormalet donc va remetre les parametres normaux, c'est même pire en réalité car la commande me.visible = false s'execute aprés mini.resizeet doncon se retrouve avec une application fantôme.

Prouquoi alors ne pas metre d'abord minimized avant l'invocation de mini?
   l'invocation de mini remet le windowsState en vbNormal, retour a la case départ !

Qu'est ce que "l'invocation d'une fenetre"?
    C'est un langage a moi qui ve dire : Frm.Visible = true & load Frm

Ca marche pas ??
   Heureux de savoir que l'informatique reste encore un mistére, chez moi ca marche, mais chez vous que ce qui ne marche pas exactement, donnez plus d'explication (ex: la commande "..." ne marche pas, ou il me donne l'erreur "...")
   Il est alors plus facile de repondre a votre question

Ca Marche .
   Je sais que ce n'est pas une question mais a ce moment là ou même si ca marche pas donnez une note !!

 

Nico1610 alias ERGO5  

signaler à un administrateur
Commentaire de PCPT le 21/11/2005 11:47:59 administrateur CS

salut,
nouveau projet. borderless, puis ShowInTaskBar = True (en mode conception)

même résultat. Quel intérêt??
(pas noté)
PCPT   [AFCK]

signaler à un administrateur
Commentaire de Benouille le 21/11/2005 13:21:05

ça aurait été un code  j'aurais pas noté ou mis 4-5 environ.

mais la je trouve que ça explique rien, ça apprends rien, j'ai lu le code et je ne crois pas avoir compris le but de la source (si ce n'est juste mettre une icone dans la barre des taches mais je suppose qu'il y a autre chose).

Ce tuto n'est pas seulement pas terrible, il est aussi mal présenté et bourré de fautes d'orthographe

2/10

signaler à un administrateur
Commentaire de nico1610 le 21/11/2005 20:02:35

Le but de ce tutoriel est simple :
Quand je met ma fenetre en bordeurstyle = none (donc sans aucune bordure) je me retrouve avec la fonction ShowInTaskBar boiteuse !
En claire quand on la met à true ma fenetre ne s'affiche pas toujours dans la barre des taches Windows (Quand on minimise)!
C'est quand même un gros problème que je n'est résolu que par cette bidouille que je présante sous la forme de ce tutoriel.

Benouille : Quand tu dit mal présenté (pour ne parlé que de ca et pas des fautes d'otho.) qu'entend tu par là ?
De plus il y a du code mais le probléme de le poser en source c'est que je ne peut pas faire autant de commentaires.
J'ai posé cette astuce apres avoir moi même planché et n'avoirs trouvé aucune aide sur VBfrance.

PCPT : Tu n'a pas tords mais il faut savoir que ta methode ne fonctionne pas tout le temps, ou alors il faut ne plus rien touché au parametre qui affecte la fenetre apres coup.
Enfin si ta solution est si simple pourquoi tant de personne on de probleme avec cette propriété (ShowInTaskBar) ?  !!

signaler à un administrateur
Commentaire de PCPT le 21/11/2005 20:26:59 administrateur CS

re,
le seul problème est si tu changes souvent ces paramètres, en cours de développement.
or ce sont des paramètres esthétiques d'une appli, donc à changer en dernier lieu et à ne plus modifier.
à partir du moment où dans l'ordre, border...., puis ShowIn...., çà marche à TOUS LES COUPS.

et à ta question "pourquoi tant de personnes galèrent", parce qu'il font 35000 essaies sans se rendre compte que ce sont des propriétés dépendantes les unes des autres.

un astuce/bidouille peut être intéressante contre un problème, ou pour contourner un Bug de l'éditeur, mais on alourdi pas un exe juste au cas où le développeur serait "mal-emmanché".


@+ ;)
PCPT [AFCK]

signaler à un administrateur
Commentaire de nico1610 le 22/11/2005 01:36:33

Elas chez toi ca marche peut être a tous les coups mais pas chez moi.
Alors je reste sur met position (surtout pour 100 malheureux Ko en plus dans un exe !!)

Nico1610 alias "ERGO5"

signaler à un administrateur
Commentaire de bouv le 19/03/2006 12:21:56

J'ai rencontré un problème similaire.
Je ne voulais pas de barre de titre, mais je voulais un border à ma feuille.

Donc
BorderStyle = Fixed Single
Caption = ""
ControlBox = False
ShowInTaskBar = True

Mais le problème est que sans caption le bouton qui apparait dans la barre de taches ne comporte pas de nom. Je me suis tourné vers le sous-classement mais je n'ai rien trouvé. J'ai donc utiliser la même solution que NICO1610 pour faire apparaitre un nom à ma feuille dans la barre de taches.

signaler à un administrateur
Commentaire de FogielMarco2 le 16/10/2007 22:21:16

Pour que l'application n'apparaisse pas dans la barre des taches
(Fenêtre) il faut utiliser :

DECLARE FUNCTION SetWindowLong LIB "User32" ALIAS "SetWindowLongA" (hWnd AS LONG, nIndex AS LONG, dwNewLong AS LONG) AS LONG
(En une seule ligne)

puis lors de l'initialisation :

SetWindowLong(Form.hWnd, -8, 128)

Form.hWnd est le handle de la form ...

Pas besoin de faire un borderstyle=none car la fenetre ne s'affichera quand meme pas dans la barre des taches ...

Dites moi si ca marche

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,016 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.