如何使用Direct3D 9获取显示器的供应商/型号名称?

时间:2015-03-04 12:17:37

标签: windows directx-9

我的电脑只有一块显卡。我插入了三台显示器,我的Windows桌面分布在三台显示​​器上。当我右键单击桌面并选择“屏幕分辨率”时,出现的对话框有一个组合框“显示”,它知道每个显示器的品牌和型号。到目前为止,非常好。

我正在使用Direct3D 9编写应用程序,我想向用户提供相同的监视器选择。 IDirect3D9::GetAdapterCount返回3,每个监视器一个。如果每个人都IDirect3D9::GetAdapterIdentifierD3DADAPTER_IDENTIFIER9.Description字段会描述我的图形卡(例如“NVIDIA GeForce GTX 770”),而不是显示器 (例如“Acer B243HL”)。

我尝试调用IDirect3D9::GetAdapterMonitor获取HMONITOR,然后调用GetMonitorInfo,但字符串格式为“\。\ DISPLAY3”。

是否有一个我可以调用的函数将返回一个描述我的 monitor 的字符串,与Windows屏幕分辨率菜单中的相同?我只限于DirectX版本9。

已编辑添加:

我之前尝试使用EnumDisplayDevices,但我在DISPLAY_DEVICE.DeviceString中得到的最接近的字符串是“Generic PnP Monitor”。 Windows自己的屏幕分辨率设置具有确切的品牌和型号。

我在Windows 7上。

0 个答案:

没有答案