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!