Einzelnen Beitrag anzeigen

frost

Registriert seit: 28. Mai 2007
Ort: Kassel
2 Beiträge
 
#1

Form in Taskleiste zwischen ReBarWindow32 & TrayNotifyWn

  Alt 28. Mai 2007, 20:13
Hi,
ich möchte eine Form / Panel / Bild in die Taskleiste einbauen,
jedoch ohne DeskBands da diese meinen Wünschen nicht entsprechen.

Edit: Hab ein OpenSource Projekt gefunden dass das macht, jedoch in C++ gecodet.
Edit2 Was ich dem Source entnehmen kann ist dass ich irgendwie mit RECT arbeiten muss..

Die Handles der Taskleiste sind ja folgendermaßen aufgebaut:

Code:
// Shell_TrayWnd
//    |- Button
//    |- ReBarWindow32
//    |    |- MSTaskSwWClass
//    |    |    +- ToolbarWindow32
//    |    +- ToolbarWindow32
//    |- ]]]] Hier soll mein Control rein [[[[
//    +- TrayNotifyWnd
//         |- TrayClockWClass
//         |- SysPager
//         |    +- ToolbarWindow32
//         +- Button


Grob gesagt möchte ich etwas zwischen ReBarWindow32 und TrayNotifyWnd quetschen.
Wie das aussieht kann man sich bei NHC (Notebook Hardware Control) ansehen:
http://www.imagebanana.com/img/s7lujk3/nhc.PNG

Das habe ich bisher versucht:
Delphi-Quellcode:
var Shell_TrayWnd_HWND: HWND;
begin

  // Das Handle von der Taskleiste rauskriegen
  Shell_TrayWnd_HWND := FindWindow('Shell_TrayWnd', nil);

  // Taskleiste als Parent fürs Panel setzen
  Windows.SetParent(Panel1.Handle,Shell_TrayWnd_HWND);

end;
Das klappt auch, jedoch landet das Panel dann irgendwo unterm Startbutton.
Natürlich könnte man mit Windows.MoveWindow das Panel zur gewünschten Stelle veschieben,
jedoch ist das keine Lösung.

Wie kann ich dem Panel begfreiflich machen dass von der Position her ReBarWindow32 und TrayNotifyWnd seine "Geschwister" sind?

Vielen dank für jede Hilfe!
  Mit Zitat antworten Zitat