2012-09-13 52 views
0

我正在嘗試使用ChangeDisplaySettingsEx函數將桌面拉伸到兩臺顯示器。我希望桌面分辨率爲3840x1080,而不是1920x1080分辨率。我嘗試以下:在Windows 7中將桌面拉伸到2臺顯示器

POINTL posPrimary={0}; 
posPrimary.x=0 
posPrimary.y=0; 

DEVMODE mode_primary = {0}; 
mode_primary.dmSize = sizeof(mode_primary); 
mode_primary.dmFields = DM_POSITION; 
mode_primary.dmPosition = posPrimary; 
mode_primary.dmPelsWidth = 3840; 
mode_primary.dmPelsHeight = 1080; 

LONG status = ChangeDisplaySettingsEx(
    nameofMonitor, 
    &mode_primary, 
    nullptr, // reserved 
    CDS_SET_PRIMARY | CDS_UPDATEREGISTRY, 
    nullptr // no video parameter 
); 
    if (DISP_CHANGE_SUCCESSFUL != status) { 
    printf("ChangeDisplaySettingsEx returned %d", status); 
    return -__LINE__; 
} 

我也試過SetDisplayConfig功能:

SetDisplayConfig(0,NULL,0,NULL,SDC_TOPOLOGY_CLONE|SDC_APPLY); 

SDC_TOPOLOGY_CLONE只是個克隆的監視器而SDC_TOPOLOGY_EXTEND延伸桌面到第二顯示器。

任何建議,將不勝感激。

+1

是不是擴展桌面(SDC_TOPOLOGY_EXTEND)你想要什麼?擴展桌面可爲您提供您所需的解決方案。 –

+0

@AndrewCooper我想展開桌面,使主顯示器的分辨率爲3840x1080。在上述情況下,主桌面分辨率爲1920x1080,並延伸至第二臺顯示器。我不確定我是否在這裏表達清楚。我希望桌面和任務欄一起擴展到第二臺顯示器 – Sai

回答

1

Windows 7不支持跨多臺顯示器「拉伸」桌面。您可以將桌面擴展到多個顯示器,但您始終必須選擇將哪個顯示器作爲主顯示器。任務欄出現在主監視器上,無法將其展開到其他監視器。

Windows 8有更好的多顯示器支持,並允許每個顯示器上的任務欄。您可以將相同的任務欄配置爲位於所有屏幕上,也可以將單個任務欄配置爲該屏幕上的窗口圖標。 AFAIK,你仍然無法在所有顯示器上擴展單個任務欄。

更新

我想多一點關於這一點,它發生,我認爲它可能可以用於視頻卡驅動程序呈現多個監視器到Windows與合併到一個設備解析度。這種配置是視頻卡供應商專有的,如果確實存在,您必須使用他們的API來訪問該功能。

+0

是的,有些人習慣於提供這樣的選擇,但它只會產生可怕的結果並打破許多應用程序的期望。它也會導致所有居中的窗口出現在縫隙上:( – Deanna

+0

是的,只能使用視頻卡驅動程序 – Sai

0

另一種選擇是使用像SAPPHIRE Vid-2X或Matrox 2H2Go這樣的設備。這些將包括在他們的EDID 3840x1080,所以你可以使用SetDisplayConfig來設置1920x1080,你會得到克隆diwplays或設置3840x1080讓一個桌面延伸到兩個顯示器。這樣你就是圖形卡/供應商不可知論者。請注意,您需要使用DL-DVI或DP才能完成此項工作。

相關問題