Windows多顯示器編程的方法
一、Windows中接入多個顯示器時,可設置為複製和擴展屏。
1、設置為複製屏幕時,多個顯示器的分辨率是一樣的.,位置為0~分辨率值
2、設置為擴展屏幕時,顯示器之間的關係比較複雜些。首先Windows系統會識別一個主顯示器,這個可以在屏幕分辨率中更改。多個顯示器之間的位置關係也可以再屏幕分辨率中更改。其中主顯示器的位置為(0,0)到(width,height),其他顯示器位置由與主顯示器的位置關係決定,在主顯示器左上,則為負數,用0減去長寬;在右下,則由主顯示器的分辨率加上長寬。其中驅動或用mouse_event處理時也是一樣,主顯示器為0~65535,其他顯示器根據主顯示器的相對位置確定。
二、相關程序和API如下:
1、獲取當前顯示器的分辨率
m_iCurScrWidth = ::GetSystemMetrics(SM_CXSCREEN);m_iCurScrHeight = ::GetSystemMetrics(SM_CYSCREEN);
2、移動窗口位置
MoveWindow(0, 0, m_iCurScrWidth, m_iCurScrHeight);//移動窗口ModifyStyle(WS_CAPTION,0,0);//取消標題欄
3、獲取顯示器數量
複製代碼 代碼如下:GetSystemMetrics(SM_CMONITORS);
4、獲取顯示器的相對位置於分辨率
void GetScreenRect(int ScreenNo){BOOL flag;DISPLAY_DEVICE dd; ZeroMemory(&dd, sizeof(dd)); = sizeof(dd);flag = EnumDisplayDevices(NULL, ScreenNo, &dd, 0);if (!flag) return;DEVMODE dm;ZeroMemory(&dm, sizeof(dm));ze = sizeof(dm);flag = EnumDisplaySettings(ceName,ENUM_CURRENT_SETTINGS, &dm);m_ScrRect[ScreenNo] = sition.x;m_ScrRect[ScreenNo] = sition.y;m_ScrRect[ScreenNo]t = lsWidth;m_ScrRect[ScreenNo]om = lsHeight;}
-
雙核CPU下怎麼提升win7的啟動速度
雙核CPU甚至是四核CPU目前已經相當流行,但調查得知,目前大部分的windows7在啟動過程很慢,沒有完全發揮雙核CPU的性能。那麼,如何完全挖掘雙核CPU的性能,加快windows7的啟動速度呢?下面跟YJBYS小編一起來了解一下!雙核CPU下提升win7的'啟動速度步驟步驟1:點擊開始按...
-
顯示器代理銷售協議2篇
在生活中,協議在生活中的使用越來越廣泛,簽訂協議是提高經濟效益的手段。想必許多人都在為如何寫好協議而煩惱吧,以下是小編精心整理的顯示器代理銷售協議,希望對大家有所幫助。顯示器代理銷售協議1┌─────────┬──────────┐│甲方:│乙方:│├...
-
Linux系統佔內存大的原因
導語:用過Linux的人都知道Linux系統對電腦內存有一定的要求,那麼Linux系統為什麼特別佔內存?這裏給大家介紹一下。Linux用這麼多內存是為了提高系統性能和不浪費內存,Linux把多的內存做了cache,以提高io速度。Linux操作系統是UNIX操作系統的一種克隆系統,它誕生於19...
-
如何維護液晶顯示器
液晶顯示器(又稱“LCD”)當然要比CRT顯示器金貴,因此如何維護液晶顯示器顯得十分重要。更多相關信息請關注相應欄目!首先,要讓水分遠離液晶顯示器。一旦液晶屏進水或被放在濕度大的地方,LCD的顯示會變得非常模糊,較嚴重的潮氣還會損害LCD的元器件,尤其是在給含有濕度...