AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SetWindowPos Alternative

Ein Thema von Ondeth · begonnen am 12. Mai 2013 · letzter Beitrag vom 18. Mai 2013
Antwort Antwort
Ondeth

Registriert seit: 7. Mär 2013
22 Beiträge
 
Delphi XE3 Starter
 
#1

AW: SetWindowPos Alternative

  Alt 12. Mai 2013, 16:24
Naja , es läuft so "halb" ...

Sobald das Spielfenster deaktiviert ist und das Fenster meines Programmes HWND_TOPMOST ist , "blitzt" mein Programmfenster immer mal wieder im Spiel auf , um Sekundebruchteile später wieder zu verschwinden Es wird eben nie "richtig" angezeigt....

Wenn ich dann durch Druck der Tastenkombination das ganze wieder rückgängig mache (also Spiel aktivieren und NOTOPMOST), ist nur das Spielefenster im Vordergrund (wie es auch sein soll )

Ich glaub schon bald nicht mehr dran , dass das noch klappt
Max

Geändert von Ondeth (12. Mai 2013 um 16:27 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: SetWindowPos Alternative

  Alt 12. Mai 2013, 16:33
Zitat:
Es wird eben nie "richtig" angezeigt....
Da wäre die frage kannst du noch eingaben machen im Spiel nachdem es deaktiviert wurde?
Wenn Ja dann ist dein Handle nicht gültig für das Spielfenster.

Was du noch versuchen könntest

Delphi-Quellcode:
// Zeichnen zulassen
SendMessageW(WinHandle, WM_SETREDRAW, Integer(TRUE), 0);
// Zeichnen unterbinden
SendMessageW(WinHandle, WM_SETREDRAW, Integer(FALSE), 0);
Es wäre möglich das die Paint routine des SpieleFensters eine erneute ZOrder verursacht.

Mehr fällt mir jetzt auch nicht ein.

PS:
Wie schon gesagt DirectX Fenster haben nichts gemein mit normalen WindowFenster daher denke ich das
dein vorhaben im FullScreen nicht funktionieren wird ohne über DirectX zu gehen und eventuelle Hooks dafür
zu verwenden.

gruss

Geändert von EWeiss (12. Mai 2013 um 17:48 Uhr)
  Mit Zitat antworten Zitat
Ondeth

Registriert seit: 7. Mär 2013
22 Beiträge
 
Delphi XE3 Starter
 
#3

AW: SetWindowPos Alternative

  Alt 12. Mai 2013, 16:49
Zitat:
Da wäre die frage kannst du noch eingaben machen im Spiel nachdem es deaktiviert wurde?
Sobald ich die Maus bewege, fliege ich aus dem Spielefenster raus und mein Programmfenster wird angezeigt
Tastendrucke allerdings werden im Spiel übernommen -> Daraus schließe ich einfach mal,dass das Handle nicht gültig ist...

Jetzt werde ich aber erstmal deine Idee ausprobieren
Max

Geändert von Ondeth (12. Mai 2013 um 16:53 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: SetWindowPos Alternative

  Alt 12. Mai 2013, 16:53
Zitat:
Da wäre die frage kannst du noch eingaben machen im Spiel nachdem es deaktiviert wurde?
Sobald ich die Maus bewege, fliege ich aus dem Spielefenster raus und mein Programmfenster wird angezeigt
Tastendrucke allerdings werden im Spiel übernommen

Jetzt werde ich aber erstmal deine Idee ausprobieren
Viel Glück!

Einen ähnlichen Thread hatten wir schon mal..
http://www.delphipraxis.net/47398-os...mm-legen.html#

gruss
  Mit Zitat antworten Zitat
Ondeth

Registriert seit: 7. Mär 2013
22 Beiträge
 
Delphi XE3 Starter
 
#5

AW: SetWindowPos Alternative

  Alt 12. Mai 2013, 17:01
Hat sich nichts geändert , aber dein Link ist interessant(hab ich bei der Suche heute morgen wahrscheinlich übersehen)-den werde ich mir gleich mal anschauen

Vielen Dank für deine Hilfe & deine Zeit
Max
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: SetWindowPos Alternative

  Alt 12. Mai 2013, 19:10
Zitat:
Vielen Dank für deine Hilfe & deine Zeit
Kein problem
-------------------------------
Grundsätzlich kann man das verwirklichen was du vorhast
Dazu muss man nur die Form als Bitmap in den Speicher kopieren dann weiter auf den BackBuffer(Offscreen Surface) von DDraw.

Das Bitmap kann man mit CreateDIBSection erstellen.

Das problem dabei mal wieder wie kommt man an den BackBuffer einer DirectX Anwendung.
Solange ich das Fenster für DX selbst erstelle ist das kein problem dann geht es auch mit Fullscreen.

Hab es vorhin mal in VB auf die schnelle getestet da ich keine lust hatte die Header Dateien für Delphi zusammen zu suchen.
Da funktioniert das ohne flackern oder sonstige schwierigkeiten.

Na ja denke das hilft dir jetzt so auch nicht weiter.

gruss

Geändert von EWeiss (13. Mai 2013 um 01:33 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz