在扩展模式下将DirectX窗口从一个监视器移动到另一个监视器

| 我有一个简单的DirectX-9测试应用程序,我想以扩展模式从一台显示器移到另一台显示器。 在主监视器上创建了窗口和设备,并正确绘制了场景,但是当我将窗口移至第二个监视器时,它将冻结。没有错误,即使当前的调用也不会失败,但是窗口没有更新。当我将窗口移回主监视器后,一切就恢复了。 谁能给我一个提示,让我无法实现这个工作?     
已邀请:
        确保枚举适配器模式。您使用的模式可能与显卡有关。同样,对于适配器支持的每种格式,都有基于可用模式数量的显示模式列表。这是循环浏览这些模式的快速示例:
D3DDISPLAYMODE mode;
UINT adapter = 0;
D3DFORMAT format = D3DFMT_R5G6B5;
LPDIRECT3D9 pD3D;

pD3D = Direct3DCreate9( D3D_SDK_VERSION );

if(!pD3D) return FALSE;

UINT availableModes = pD3D->GetAdapterModeCount(Adapter, Format);

if(!availableModes) return FALSE;

for(UINT i = 0; i < availableModes; i++)
{
    pD3D->EnumAdapterModes( adapter, format, i, &mode);
    formatModeList->push_back(mode); // A list of modes
}
另外,如果您处于窗口模式,请确保不使用翻转。在窗口模式下,您共享正在运行的应用程序的当前视频模式。不幸的是,您必须使用较慢的发条过程。希望这会有所帮助。 问候, 将     

要回复问题请先登录注册