管理DirectX9 MDI

时间:2009-07-09 21:08:41

标签: c# directx

我正在使用托管dx9编写MDI应用程序。

当我创建设备时,我传入一个控件。

如果我传入其中一个MDI子窗口(或者更具体地说,是MDI子窗口中的控件),一切都会很好。我可以生成新的子MDI窗口并单独绘制到每个窗口。我可以关闭任何新窗口,没问题。但是,如果我关闭原始子窗口,Device.Clear()会抛出异常(空引用异常 - 已释放设备)。

或者,我可以将Form1传递给Device构造函数。现在我可以打开和关闭尽可能多的子窗口而不会出现异常,但现在渲染分辨率不是很正确 - 图形不像我将子窗口传递给Device构造函数那样清晰。

所以我的第一个问题是: 我可以在构建设备时指定分辨率吗? 我应该将哪个控件/窗口传递给Device构造函数? 我究竟做错了什么? :)

由于

2 个答案:

答案 0 :(得分:1)

您应该知道Managed DirectX已被弃用,Microsoft将永远不会再次更新。您应该使用SlimDX代替。

答案 1 :(得分:0)

当使用表单作为传递给设备构造函数的控件时,我无法使解析工作,所以我重新设置了设备,如果它被处理掉了。