国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

VC實現Windows多顯示器編程的方法

2020-01-26 14:50:21
字體:
來源:轉載
供稿:網友

本文實例講述了VC實現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)); dd.cb = sizeof(dd);flag = EnumDisplayDevices(NULL, ScreenNo, &dd, 0);if (!flag) return;DEVMODE dm;ZeroMemory(&dm, sizeof(dm));dm.dmSize = sizeof(dm);flag = EnumDisplaySettings(dd.DeviceName,ENUM_CURRENT_SETTINGS, &dm);m_ScrRect[ScreenNo].left = dm.dmPosition.x;m_ScrRect[ScreenNo].top = dm.dmPosition.y;m_ScrRect[ScreenNo].right = dm.dmPelsWidth;m_ScrRect[ScreenNo].bottom = dm.dmPelsHeight;}

希望本文所述對大家的VC程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 冀州市| 镇巴县| 鄯善县| 鄂托克前旗| 南投市| 保靖县| 汕尾市| 启东市| 福泉市| 陕西省| 义乌市| 永吉县| 容城县| 鄱阳县| 泰兴市| 阳高县| 民勤县| 平潭县| 西平县| 盈江县| 宜宾县| 大同市| 淮南市| 广宁县| 应用必备| 平南县| 册亨县| 新沂市| 赤壁市| 平远县| 巴南区| 汉川市| 辰溪县| 进贤县| 武宁县| 黑水县| 秦安县| 镶黄旗| 漠河县| 抚顺县| 南靖县|