Obtenir la hauteur de la barre des tâches..

Obtenir la hauteur de la barre des tâches.. - C++ - Programmation

Marsh Posté le 01-11-2003 à 14:30:13    

Salut,
 
je voudrais obtenir la hauteur de la barre des tâches de Windows pour pouvoir placer une fenêtre juste au dessus, mais je ne sais pas comment faire ça...
 
Je suis sous C++ Builder 6
 
Merci d'avance...

Reply

Marsh Posté le 01-11-2003 à 14:30:13   

Reply

Marsh Posté le 01-11-2003 à 14:41:19    

La barre des taches est une fenêtre de classe Shell_TrayWnd. Donc tu fais un FindWindow() pour trouver son handle, puis tu passes ce handle à la fonction GetClientRect() pour récupérer une structure RECT contenant les coordonnées de la zone client de cette fenêtre.


Message édité par Harkonnen le 01-11-2003 à 14:42:36

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 01-11-2003 à 14:54:25    

Harkonnen a écrit :

La barre des taches est une fenêtre de classe Shell_TrayWnd. Donc tu fais un FindWindow() pour trouver son handle, puis tu passes ce handle à la fonction GetClientRect() pour récupérer une structure RECT contenant les coordonnées de la zone client de cette fenêtre.


 
FindWindows demande le nom de la fenêtre... C'est quoi celui de la barre des tâches?

Reply

Marsh Posté le 01-11-2003 à 14:57:03    

purée
donne NULL en nom et Shell_TrayWnd en nom de classe

Reply

Marsh Posté le 01-11-2003 à 14:57:23    

http://msdn.microsoft.com/library/ [...] Window.asp
 

Citation :


lpWindowName
    [in] Pointer to a null-terminated string that specifies the window name (the window's title). If this parameter is NULL, all window names match.


En d'autres termes, si tu passes NULL comme nom, tous les noms de fenêtre de classe Shell_TrayWnd seront pris. Comme la barre des taches est la seule fenêtre de cette classe, ça pose aucun problème de pas indiquer de nom
 
edit: [:grilled]


Message édité par Harkonnen le 01-11-2003 à 14:57:54

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 01-11-2003 à 15:05:37    

Et puis apprend à utiliser les outils qui sont livrés avec C++ Builder, notamment WinSight 32 grâce auquel tu peux trouver (entre autres) la classe d'une fenêtre bien précise


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 01-11-2003 à 15:06:16    

chrisbk a écrit :

purée
donne NULL en nom et Shell_TrayWnd en nom de classe


 
T'énerves pas, je savais pas que la barre des tâches était la seule fenêtre de la classe...
 
Pour ceux que ça intéresse (on sait jamais):
 

Code :
  1. HWND handle = FindWindow("Shell_TrayWnd", NULL);
  2. LPRECT rect;
  3. GetWindowRect(handle,rect);


 
Merci!! :jap:

Reply

Marsh Posté le 01-11-2003 à 15:09:44    

Harkonnen a écrit :

Et puis apprend à utiliser les outils qui sont livrés avec C++ Builder, notamment WinSight 32 grâce auquel tu peux trouver (entre autres) la classe d'une fenêtre bien précise


 
Je connaissais pas, je vais aller jeter un oeil...

Reply

Marsh Posté le 01-11-2003 à 15:11:47    

Tu devrais utiliser GetClientRect() au lieu de GetWindowRect(), car GetClientRect() initialise top et left à 0, alors que GetWindowRect() te renvoie les coordonnées écran. Etant donné que la barre des tâches ne possède ni bordure, ni barres de scrolling, etc... je pense que l'usage de GetClientRect() te facilitera la tache.


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 01-11-2003 à 15:16:25    

OK, merci...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed