Laden...
J
J. Fiddler myCSharp.de - Member
Softwareentwickler Dabei seit 17.05.2019 3 Beiträge
Benutzerbeschreibung

Forenbeiträge von J. Fiddler Ingesamt 3 Beiträge

17.05.2019 - 09:50 Uhr

Danke für den Hinweis, den Fehler habe ich berichtigt. Die Auflösung scheint irrelevant zu sein. Ich habe es in verschiedenen Kombinationen versucht, das Verhalten ändert sich leider nicht. Default sind die Auflösungen identisch.
Die Libs sehen sehr vielversprechend aus. Vielen Dank dafür. Das wird heute Abend direkt ausprobiert.

17.05.2019 - 09:23 Uhr

Danke für deine Antwort. Ja, das beschriebene Verhalten betrifft nur den echten "Fullscreen". Wenn ich im Spiel die Option "Frameless window" wähle, funktioniert es wie von dir beschrieben einwandfrei.
Deine Erläuterung ist plausibel. Was ich allerdings nicht verstehe: warum funktioniert es unter win8 und win10 auch bei echtem, opengl, Fullscreen? Und warum ist die Applikation unter win7 bedienbar obwohl ich sie nicht sehe, liegt also scheinbar oben?
Ich werde mich auf jeden Fall jetzt erst mal mit der OpenGl/DirektX Thematik auseinander setzten. Da habe ich noch keine Ahnung von. Dank für den Hinweis.

17.05.2019 - 08:27 Uhr

Hallo Community,

Ich kämpfe seit einigen Wochen mit einem Problem unter Windows7. Ich habe eine WPF-Applikation geschrieben, die als Overlay zu einem Spiel dient. Das Spiel ist dabei frameless, fullscreen und TopMost. Um meine Applikation nun in bestimmten Spielsituationen nach vorne zu bringen, ermittle ich das Mainwindow handle vom Spiel und setze meine Applikation mit SetWindowPos() darüber. Dies funktioniert ab Windows 8 und höher auch wunderbar. Leider nicht unter Windows7. .Net Frameworks ist 4.7.
Meine Applikation scheint dabei TopMost zu sein, ist aber leider nicht sichtbar. Ich vermute also ein Problem im Bereich Repainting.

Folgende Sachverhalte habe ich überprüft:

  1. Die ZOrder ist korrekt. Der ZOrder Index meiner Applikation ist nach SetWindowPos eins höher als der Index des Spiels.
  2. Ws_ex_topmost ist gesetzt.
  3. Die Maus ist sichtbar wenn ich über bedienbare Widgets meiner Applikation hover. Die OnClick events werden in meiner Applikation ausgewertet, allerdings ist sie halt nicht sichtbar.
  4. Ich habe über alle Children des Mainwindow vom Spiel iteriert und geschaut ob eines in der ZOrder weiter oben liegt. Das ist nicht der Fall.
  5. Ich habe es noch zusätzlich in C++ mit der CWnd Klasse probiert, der Effekt ist leider identisch.
  6. Ich habe unter Verwendung von Invalidate(), UpdateLayout() und Refresh() versucht meine Applikation neu zu zeichnen

Vielleicht hat jemand noch einen Hinweis oder weiß wo der Unterschied zwischen windows7 und >windows8 liegt

Vielen Dank und Gruß