Autor Beitrag
NewMori
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45
Erhaltene Danke: 1



BeitragVerfasst: Di 22.05.12 18:34 
Hallo,
wie manche evtl. aus meinem letzen Post wissen, schreibe ich grade an einem Tool um (systemweit) Fenster zu positionieren. Ich fange im Moment das WM_ENTERSIZEMOVE Event ab, um einen Hintergrund einzublenden, welcher die Fanglinien und Bereiche darstellen soll. Das Problem ist nun, dass ich den Hintergrund natürlich nicht vor das Fenster setzen darf. Dies tue ich mit
ausblenden Delphi-Quelltext
1:
2:
SetWindowPos(WindowHandle,HWND_TOP,0,0,0,0,SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE or SWP_SHOWWINDOW);
SetWindowPos(GetActiveWindow(),HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE or SWP_SHOWWINDOW);

Allerdings ignoriert das Resizende Fenster den SetWindowPos Aufruf und bleibt im Hintergrund, während das Hintergrund Fenster darüber liegt. Ich hätte die Frage, ob man das Verhalten ändern kann oder es anders möglich ist das Fenster in den Hintergrund zu schieben bzw das Hintergrundfenster erst garnicht TopMost machen zu müssen

_________________
Es ist keine Kunst in ein Programm 20 Fehler zu schreiben. Die Kunst ist es das Programm dann noch zum laufen zu bekommen.
baka0815
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 489
Erhaltene Danke: 14

Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
BeitragVerfasst: Mi 23.05.12 12:37 
Das Fenster bei dem sich die Größe ändert ist ja noch im "Resize Event", wird daher also keine weiteren Meldungen (wie z.B. das TOPMOST-setzen) entgegen nehmen, sondern erst, nachdem der Event abgearbeitet wurde, das Resize also durch ist.