分屏技術

標籤: 暫無標籤

46

更新時間: 2013-09-04

廣告

一般情況下,計算機用戶都是使用單一的顯示屏來觀察顯示的信息,目前比較流行的是17英寸的顯示器,可以滿足一般用戶的需求。但是在一些特殊的場合下,例如需要對現場進行大範圍的監控、CAD繪圖、或應用電子地圖技術等的情況下,需要全景顯示時,用戶就不得不要求計算機有足夠大的顯示桌面,以便對場景的細節看的更清楚、操作起來更方便。

廣告

1 分屏技術 -擴展計算機桌面尺寸

  針對上述情況,即使是二十九寸的顯示器其有效的顯示尺寸也是十分有限的,這時候解決桌面大小問題就不得不採用分屏顯示技術,Windows操作系統支持這種技術,這裡的分屏顯示並不是指採用分屏分配器驅動多個顯示器,從而使多個屏幕顯示相同的畫面,就如同VC界面編程中的動態拆分效果,而是指在一台計算機上安裝多個顯卡帶多台顯示器,實現成倍的擴展計算機桌面尺寸的目的。

2 分屏技術 -示例

  例如台灣Dream公司推出的ViewPacket軟體,可以一邊顯示視頻流,一邊編輯Word文檔,一邊上網瀏覽網路上的信息,極大的方便了用戶的使用。

3 分屏技術 -分屏顯示的系統配置方法

廣告

  為了安裝多顯示器,首先檢查機器硬體,當前Windows操作系統只支持PCI適配器來實現多顯示器桌面,它要求顯卡必須使用以下晶元組中的一種:ATI Mach64、S3 764和764+、Cirrushgic5436、5446和7458、Imagine 128 Series1和2、S3 Virge或ET6000、M9711等。一般情況下,一個顯卡驅動一個顯示器,一台機器最多可以驅動7台顯示器,其中一台為主顯示器,其餘為副顯示器。主顯示器也是Windows啟動畫面出現的那個顯示器。
  進入"控制面板"-"顯示",雙擊"顯示",彈出"顯示屬性"對話框,選中"設置",如果安裝了多個監視器,這時候對話框的上半部分顯示系統中目前顯示器的數量。可右鍵單擊一個監視器圖標,再單擊"標識"查看對應於單擊其圖標的監視器的顯示編號。請將它們拖動到代表在監視器間移動項目方式的位置。例如,如果您正使用兩個監視器,並希望通過左右拖動來將項目從一個監視器中移到另一個中,請將圖標並排排列。要通過上下拖動來在監視器間移動項目,請將圖標上下排列。圖標的位置並不一定與監視器的物理位置相對應。您可以將圖標上下放置,即使監視器是並排放置的。

4 分屏技術 -分屏顯示的軟體實現

  通過上面的設置,雖然使Windows支持多顯示器擴展桌面的功能,但也僅僅是實現了設備的連接與管理,一般Windows應用程序的窗口不能自動運行到副顯示器上,用戶只能通過滑鼠拖動來將程序的窗口擴展到副顯示器上,如果需要將程序窗口自動擴展到不同的顯示器顯示,必須採用相應的分屏顯示編程技術。在這種技術中,可以使用Windows的User32.DLL動態連接庫提供的API函數SetWindowPos()(如果採用VC這個開發平台,CWnd類提供了一個同樣的成員函數),它的功能是更改窗口的大小、位置及窗口的順序,因此可以用來在多顯示器桌面上實現應用程序窗體的定位顯示。下面對這個函數進行詳細的解釋:
  BOOL SetWindowPos(
  HWND hWnd, // 窗口的句柄;
  HWND hWndInsertAfter, // 窗口次序句柄,
  int X, // 窗口左上角的水平位置;
  int Y, // 窗口左上角的垂直位置;
  int cx, // 窗口的寬度;
  int cy, // 窗口的高度;
  UINT uFlags file://標誌位;
  );
  這裡需要解釋的有hWndInsertAfter、uFlags兩個參數
  hWndInsertAfter
  在窗口的"Z"序中排在需要的設置的窗口之前的窗口句柄;這個參數取以下值:
  Value Meaning
  HWND_BOTTOM 將要操作的窗口放置在所有窗口之下;
  HWND_NOtopmost 將要操作的窗口放置在"non-topmost"窗口之下;
  HWND_TOP 將操作的窗口放置在所有的窗口之上;
  HWND_TOPMOST 將要操作的窗口放置在"non-topmost"窗口之上;
  uFlags
  規定窗口的尺寸和位置的標誌,這個參數通常取以下值:
  Value Meaning
  SWP_DRAWFRAME 窗口重畫時,繪製出窗口類中所描述的窗口的框架
  SWP_HIDEWINDOW 隱藏窗口;
  SWP_NOACTIVATE 窗口無任何動作;
  SWP_NOMOVE
  保持窗口的當前位置;
  SWP_NOREDRAW 在新位置並不重畫窗口;
  SWP_NOSIZE 改變窗口的位置,並不改變窗口的大小,既忽略cx,cy兩個參數的值;
  SWP_NOZORDER 窗口重畫時,保留當前的順序,既忽略hWndInsertAfter參數的值
  SWP_SHOWWINDOW Displays the window.
  另,該參數還可以取其它的值,具體含義讀者可以參考MSDN。
  為了說明問題,下面的VB代碼僅僅實現了在兩個顯示器分別顯示不同的窗口,用戶點擊按鈕后,主顯示器顯示窗口Form1,副顯示器顯示窗口Form2,感興趣的讀者可以稍加修改,就可以應用到實際項目開發中去。
  首先在VB全局模塊中聲明:
  Public Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
  其次在需要定位的兩個窗口模塊中調用該函數。具體的VB代碼是:
  Private Sub Form1_Load( )
  Const HWND_TOPMOST=-1
  Const SWP_NOACTIVATE=&H10
  SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, ScreenWidht/2, ScreenHeight, SWP_NOACTIVATE '在主顯示器的顯示區域上顯示窗口1;
  End Sub
  Private Sub Form2_Load( )
  Const HWND_TOPMOST=-1
  Const SWP_NOACTIVATE=&H10
  SetWindowPos Me.hWnd, HWND_TOPMOST, ScreenWidht/2, 0, ScreenWidht/2, ScreenHeight, SWP_NOACTIVATE '在副顯示器的顯示區域上顯示窗口2;
  End Sub
  為了正確的顯示,需要將窗體的ScaleMode屬性設置為Twips,這樣才可以與Windows系統中ScreenWidth和ScreenHeight的計量單位twips保持一致。

5 分屏技術 -賓士革命性「分屏」技術

  到2009年夏天,賓士S級的車主與乘客將可以同時使用COMAND系統提供的導航和娛樂功能。賓士把這種同博世合作開發的技術稱作「分屏(Splitview)」。
  Splitview技術將在明年夏天應用於賓士S級轎車
  從具體的技術層面來講,「分屏」技術能把2個不同畫面的像素先進行拆分,然後「相間」地在8英寸的屏幕上排列來自不同畫面的像素。這時你所看到的信息是完全零亂的。技術的關鍵就是賓士會在這塊LCD上附加一張過濾罩,信息交錯的像素所發出的光線,經過這個過濾罩后,就會被分離成2幅獨立而完成的畫面了,而且這2幅畫面的方向性比較強,這樣不同座位上的人才可以各取所需,互不干擾。賓士還強調,該版本的COMAND系統還可以支持2個用戶隨時各自調整自己的顯示信息,譬如司機可以通過中控台上的按鈕縮放地圖,同時旁邊的乘客可以用遙控器選擇想看的影片,甚至電視頻道。當然考慮到對駕駛安全的影響,S級肯定會提供耳機插座。
  這家百年老店總是第一時間將新穎又實用的技術運用到汽車上
  從根本的設計思路上,有點像風靡一時的立體電影,通過特殊的眼鏡分離不同的畫面,分別送到人的左眼和右眼,大腦會誤認為電影是立體的。而在新一代COMAND的「分屏」技術面前,左眼是司機,右眼是乘客。
  聯想到立體電影經常會導致很多人眼睛不適,甚至頭暈,分屏技術的畫面質量是否可以得到保證,受到了人們的質疑。但賓士對此信心十足,因為賓士S級從未讓她的客戶失望過。

廣告