D
david_sale
Unregistered / Unconfirmed
GUEST, unregistred user!
ChangeDisplaySettingsEx 的API调用可以设置显示器的相关属性,如分辨率、色彩数、刷新率等,在一个多监视器系统中怎样编程才能实现扩展副显示器?类似于在显示/设置/2显示器/将Windows桌面扩展到该监视器上的功能。<br><br>请不要使用诸如调用控制面板等类似的外部调用方式,而是以API方式进行直接设置。<br><br>下面是设置相关的代码,没有实现扩展?请大家指教:<br><br>const<br>ENUM_CURRENT_SETTINGS = DWORD(-1);<br>ENUM_REGISTRY_SETTINGS = DWORD(-2);<br><br>var<br> cDevMod:TDevMode;<br> cResult:LongBool;<br><br>begin<br> cDevMod.dmSize:=SizeOf(cDevMod);<br> cResult:=EnumDisplaySettings(pchar'//./DISPLAY2'),ENUM_REGISTRY_SETTINGS,cDevMod);<br> if cResult then<br> begin<br> cdevmod.dmPelsWidth:=800; //设置分辨率<br> cDevMod.dmPelsHeight:=600;<br> cDevMod.dmBitsPerPel:=32; //色彩数 32位真彩<br> cDevMod.dmDisplayFrequency:=60; //刷新率<br><br> cDevMod.dmOrientation:=800;<br> cDevmod.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT or DM_BITSPERPEL or DM_POSITION<br> or DM_DISPLAYFREQUENCY or DM_DISPLAYFLAGS ;<br><br> ChangeDisplaySettingsEx(pchar('//./DISPLAY2'), cDevMod, 0, CDS_UPDATEREGISTRY, nil);<br> end;<br>end;