Lieber Support,
ich arbeite mit dem ILLDataProvider. Um die Drill-Down-Schmackazien optimal zu nutzen, muss ich vor und während der Reporterzeugung Pre-Scans auf die Daten durchführen. Das kann ein wenig dauern und man muss den Benutzer mit einer netten Fortschrittsanzeige bei Laune halten. Diese hätte ich gerne in Form eines Fensters dargeboten, das vom aktuellen LL Overlapped Window besessen ist, also nicht vom Teufel, sondern vom LL-Fenster ge-owned. Wird das LL Window während der Wartezeit minimiert, verschwindet die Fortschrittanzeige, wird das LL Window restauriert, ist vor ihm wieder der aktuelle Fortschritt zu sehen. Gibt es eine charmante Methode, das am besten zu diesem Zweck zu nutzende L&L Fenster herauszufinden? Der gute alte CBTHook könnte ja aus Versehen was falsches erwischen. Ich hab’s mit GetWindow(, WL_ENABLEDPOPUP) versucht, aber das bringt unerwartete Ergbnisse.
Danke und viele Grüße
Michael
Hi Michael, wenn du den Report über LlPrintWithBoxStart() oder ähnliches startest, übergibst du ja ein Fensterhandle als Parent. Dieses Handle kannst du speichern und für dein Fortschrittsfenster verwenden.
Oder du ermittelst z.B per FindWindowEx das Fenster, irgendwie so
HWND hLLWindow = FindWindowEx(NULL, NULL, “ListLabelWindowClass”, NULL);
Bin mir grad nicht sicher ob das wirklich “ListLabelWindowClass” heißt, welches LL Fenster is es denn? Designer, Druck, was machst du genau. Kannst ja mal mit Spy++ auch die Fensterklasse genau ermitteln.
Falls du doch was anderes meinst, spendier noch weitere Infos.
LG
Hallo Erdal,
Danke für Deine Rückmeldung. Du empfiehlst mir, das zu tun, was ich gerade vermeiden möchte.
Jetzt mache ich das über EnumThreadWindows. Aber am Ende bleibt es eine Raterei. Deswegen wäre es hilfreich, wenn man Euer aktives overlapped Window, wenn für den Job vorhanden, abfragen könnte, um es gezielt für besessene (ge-ownte) Fortschrittsfenster zu nutzen
Viele Grüße
Michael