Seite 1 von 1

Position von Vorschaufenster

Verfasst: Do, 20. Mai 2021 7:33
von Wolfgang Ciriack
Hallo L&L-Spezies,
wie kann ich steuern, wo das Vorschaufenster von L&L geöffnet wird ?
Ich möchte gerne, das es auf dem Bildschirm geöffnet wird, wo auch meine Anwendung läuft.

Re: Position von Vorschaufenster

Verfasst: Do, 20. Mai 2021 9:19
von Tom
Hallo, Wolfgang.

Soweit ich weiß, kann man der Vorschau jedenfalls per DLL-Call keine Position oder Größe mitgeben. L&L speichert jedoch diese Daten in der Registry, damit die Vorschau immer wieder in gleicher Größe und an gleicher Stelle erscheint, und zwar in "HKEY_CURRENT_USER\Software\Combit\CMBTLL\<Name Deiner Anwendung>". Es geht vermutlich um "FrameRect", "ViewerRect" und ähnliche Schlüssel. Sicher nicht ganz ungefährlich, aber die könnte man setzen bzw. verändern. Oder Du machst einen kompletten Registry-Export und -Reimport mit der ganzen Gruppe, nachdem Du's so eingestellt hast, wie es sein soll.

Per .NET sieht das wohl anders aus.

Re: Position von Vorschaufenster

Verfasst: Do, 20. Mai 2021 10:27
von Marcus Herz
Theoretisch kannst du ein Preview speichern und diese Datei mittels ActiveX in einen Xbase Dialog einbetten. Aber macht das witrklich Sinn? Außßer du willst die totale Kontrolle

Re: Position von Vorschaufenster

Verfasst: Do, 20. Mai 2021 13:39
von AUGE_OHR
hi,
Marcus Herz hat geschrieben: Do, 20. Mai 2021 10:27 mittels ActiveX in einen Xbase Dialog einbetten.
meinst du DsoFramer_KB311765_x86.exe :?: ( M$ Site NICHT mehr aktiv ! )

---

hi,

die Idee von Marcus ... per USER32.DLL
das "Fenster" mit der Preview auf die "gewünschte" Position "schieben"

zunächst brauchst du ein Handle.
wenn du keins hast dann musst du das "Fenster" suchen mit FindWindowA()
https://docs.microsoft.com/en-us/window ... indwindowa

Code: Alles auswählen

   nHwnd := FindWindowA(Title_des_Preview_Fenster)  // ANSI
   if !EMPTY(nHwnd)
      // auf die Position schieben
      MoveWindow(hWnd,X,Y,nWidth,nHeight,bRepaint)
https://docs.microsoft.com/en-us/window ... movewindow

alternative

Code: Alles auswählen

      SetWindowPos(hWnd,hWndInsertAfter,X,Y,cx,cy,uFlags)
https://docs.microsoft.com/en-us/windo ... twindowpos

evtl. muss man das "Fenster" noch "nach vorne" holen mit SetForegroundWindow()

https://docs.microsoft.com/en-us/window ... oundwindow

Re: Position von Vorschaufenster

Verfasst: Do, 20. Mai 2021 14:30
von Tom
Da ist es einfacher, die paar Werte in der Registry zu beobachten und auszuwerten und dann ggf. zu setzen. Siehe oben.

Aber, wie gesagt: Die Preview merkt sich ja ihre Position. Wenn man sie also irgendwo hinschiebt, erscheint sie beim nächsten Mal dort auch wieder, ganz egal, welcher Zeitraum zwischen diesen beiden Situationen liegt.

Re: Position von Vorschaufenster

Verfasst: Do, 20. Mai 2021 15:19
von Wolfgang Ciriack
Hallo Tom,
Aber, wie gesagt: Die Preview merkt sich ja ihre Position. Wenn man sie also irgendwo hinschiebt, erscheint sie beim nächsten Mal dort auch wieder, ganz egal, welcher Zeitraum zwischen diesen beiden Situationen liegt.
Das dachte ich auch, macht das Preview auch, wenn es nicht im Maximized angezeigt und verschoben wird. Einmal etwas kleiner gemacht, verschoben und geschlossen, dann klappt es.
Im maximierten Zustand auf 2. Bildschirm schieben, dann schließen, klappt nicht.
Aber damit kann ich leben und erspare mir das Eingreifen in die Registrywerte.
Danke für die Vorschläge.

Re: Position von Vorschaufenster

Verfasst: Do, 20. Mai 2021 15:56
von Tom
Dann speicher Dir doch im Idealzustand die ganze Schlüsselgruppe und hau sie vor jedem Aufruf des Designers wieder rein. Das kostet kaum Zeit.