重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
兩個顯示器顯示有兩種模式,一種是
創新互聯長期為成百上千客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為富裕企業提供專業的成都網站制作、成都網站設計、外貿營銷網站建設,富裕網站改版等技術服務。擁有十余年豐富建站經驗和眾多成功案例,為您定制開發。
雙屏
復制,另一種是擴展。
你這個只能用第二種方式。你需要把要在另一個顯示器上顯示的窗體的Location設置在主顯示器全屏時的右邊就可以了.其實就是桌面的向右延伸。
在主顯示上拖一下窗體就明白了!
'''?summary多屏顯示屏幕設置/summary
'''?param?name="obj"目標窗體/param
'''?param?name="scrIndex"由0開始的屏幕索引,0為主屏幕/param
Private?Sub?ShowScreens(obj?As?Form,?scrIndex?As?Integer)
Dim?arr?As?Screen()?=?Screen.AllScreens
If?scrIndex??arr.Length?Then
obj.Left?+=?arr(scrIndex).Bounds.X
Else
Dim?mess?As?String?=?"當前屏幕索引超出范圍,是否要顯示在最后一個屏幕?"
Dim?result?As?DialogResult?=?_
MessageBox.Show(mess,?"信息提示",?_
MessageBoxButtons.YesNo,?MessageBoxIcon.Warning)
If?result?=?Windows.Forms.DialogResult.Yes?Then?_
obj.Left?+=?arr(arr.Length?-?1).Bounds.X
End?Sub
多屏幕的顯示,屏幕的寬度相當等于N屏幕的寬度之和,更改窗體的X坐標就能控制窗體顯示在哪個屏幕上。
這篇文章介紹了VB.NET設置屏幕分辨率、顏色位數、刷新率
實例代碼,有需要的朋友可以參考一下
復制代碼
代碼如下:
Private
Declare
Function
GetDeviceCaps
Lib
"gdi32"
(ByVal
hdc
As
Long,
ByVal
nIndex
As
Long)
As
Long
Private
Declare
Function
ChangeDisplaySettings
Lib
"user32"
Alias
"ChangeDisplaySettingsA"
(lpDevMode
As
Any,
ByVal
dwflags
As
Long)
As
Long
Private
Const
CCDEVICENAME
As
Long
=
32
Private
Const
CCFORMNAME
As
Long
=
32
Private
Const
DM_BITSPERPEL
As
Long
=
H40000
Private
Const
DM_PELSWIDTH
As
Long
=
H80000
Private
Const
DM_PELSHEIGHT
As
Long
=
H100000
Private
Const
DM_DISPLAYFLAGS
As
Long
=
H200000
Private
Const
DM_DISPLAYFREQUENCY
=
H400000
Private
Const
CDS_FORCE
As
Long
=
H80000000
Private
Const
BITSPIXEL
As
Long
=
12
Private
Const
HORZRES
As
Long
=
8
Private
Const
VERTRES
As
Long
=
10
Private
Const
VREFRESH
=
116
Private
Type
DEVMODE
dmDeviceName
As
String
*
CCDEVICENAME
dmSpecVersion
As
Integer
dmDriverVersion
As
Integer
dmSize
As
Integer
dmDriverExtra
As
Integer
dmFields
As
Long
dmOrientation
As
Integer
dmPaperSize
As
Integer
dmPaperLength
As
Integer
dmPaperWidth
As
Integer
dmScale
As
Integer
dmCopies
As
Integer
dmDefaultSource
As
Integer
dmPrintQuality
As
Integer
dmColor
As
Integer
dmDuplex
As
Integer
dmYResolution
As
Integer
dmTTOption
As
Integer
dmCollate
As
Integer
dmFormName
As
String
*
CCFORMNAME
dmUnusedPadding
As
Integer
dmBitsPerPel
As
Integer
dmPelsWidth
As
Long
dmPelsHeight
As
Long
dmDisplayFlags
As
Long
dmDisplayFrequency
As
Long
End
Type
Private
Sub
cmdChangeDesktopMode_Click()
Dim
DM
As
DEVMODE
With
DM
.dmPelsWidth
=
CInt(txtNewWidth.Text)
.dmPelsHeight
=
CInt(txtNewHeight.Text)
.dmBitsPerPel
=
CInt(txtNewColor.Text)
.dmDisplayFrequency
=
CInt(txtNewFreq.Text)
.dmFields
=
DM_PELSWIDTH
Or
DM_PELSHEIGHT
Or
DM_BITSPERPEL
Or
DM_DISPLAYFREQUENCY
.dmSize
=
LenB(DM)
End
With
If
ChangeDisplaySettings(DM,
CDS_FORCE)
Then
MsgBox
"錯誤!不支持此模式!"
End
If
End
Sub
Private
Sub
Form_Load()
txtOldWidth.Text
=
GetDeviceCaps(Me.hdc,
HORZRES)
txtOldHeight.Text
=
GetDeviceCaps(Me.hdc,
VERTRES)
txtOldColor.Text
=
GetDeviceCaps(Me.hdc,
BITSPIXEL)
txtOldFreq.Text
=
GetDeviceCaps(Me.hdc,
VREFRESH)
End
Sub
用directshow獲取幀緩存,轉換為標準圖像格式(比如jpg,png這些),存儲到數據庫的image字段里就行了.
首先顯示器設置成“擴展”模式,即三臺顯示器的屏幕共同組成一個橫向的大屏幕
其次,將VB.NET的三個窗口用代碼移動到每個顯示器的坐標原點即可