2009-07-09 6 views
0

Ich schreibe eine MDI-App mit Managed dx9.Managed DirectX9 MDI

Wenn ich das Gerät erstellen, gebe ich ein Steuerelement.

Wenn ich in einem der untergeordneten MDI-Fenster übergeben (oder genauer gesagt, ein Steuerelement im untergeordneten MDI-Fenster), wird alles gerendert. Ich kann neue Kinder MDI-Fenster spawnen und zu jedem von diesen einzeln zeichnen. Ich kann jedes der neuen Fenster schließen, kein Problem. Wenn ich jedoch das ursprüngliche Kindfenster schließe, löst Device.Clear() eine Ausnahme aus (Nullreferenzausnahme - das Gerät wurde entsorgt).

Alternativ kann ich Form1 an den Gerätekonstruktor übergeben. Jetzt kann ich so viele untergeordnete Fenster öffnen und schließen, wie ich möchte, ohne die Ausnahme zu bekommen, aber jetzt ist die Renderauflösung nicht ganz richtig - die Grafiken sind nicht so scharf wie beim Übergeben des untergeordneten Fensters an den Gerätekonstruktor.

Also meine ersten Fragen sind: Kann ich die Auflösung angeben, wenn ich das Gerät konstruiere? Welches Steuerelement/Fenster sollte ich an den Device-Konstruktor übergeben? Was mache ich falsch? :)

Dank

Tim

Antwort

0

Ich war nicht in der Lage, die Auflösung zu erhalten, zu arbeiten, wenn die Form als auf das Gerät Konstruktor übergeben Kontrolle verwendet wird, so neu erstellt ich das Gerät, wenn es jemals angeordnet wurde.

1

Sie sollten sich bewusst sein, dass Managed DirectX veraltet ist und nie wieder von Microsoft aktualisiert wird. Sie sollten stattdessen SlimDX verwenden.