GetMonitorInfo是user32.dll里的的一个函数,返回一个显示器的信息。如果函数成功,则返回值不为零。失败返回0
用到的API
.版本 2 .DLL命令 GetWindowRect, 整数型, "user32", "GetWindowRect", , 取窗口矩形_ .参数 窗口句柄, 整数型 .参数 矩形区域, RECT .DLL命令 取显示器信息_, 整数型, "user32.dll", "GetMonitorInfoA" .参数 显示器句柄, 整数型 .参数 显示器信息结构, 显示器信息_ .DLL命令 点是否在显示器内_, 整数型, "user32.dll", "MonitorFromPoint" .参数 横坐标, 整数型, , x .参数 纵坐标, 整数型, , y .参数 标志, 整数型, , dwFlags .DLL命令 矩形是否在显示器内_, 整数型, "user32.dll", "MonitorFromRect" .参数 矩形, RECT, , lprc .参数 标志, 整数型, , dwFlags .DLL命令 窗口是否在显示器内_, 整数型, "user32.dll", "MonitorFromWindow" .参数 窗口句柄, 整数型, , hwnd .参数 标志, 整数型, , dwFlags .DLL命令 枚举显示器_, 整数型, "user32.dll", "EnumDisplayMonitors" .参数 设备场景句柄, 整数型, , hdc .参数 剪辑地址, 整数型, , lprcClip,any, .参数 回调函数地址, 整数型, , lpfnEnum .参数 数据, 整数型, , dwData
自定义数据类型
.版本 2 .数据类型 RECT, , RECT .成员 左边, 整数型, , , left .成员 顶边, 整数型, , , top .成员 右边, 整数型, , , right .成员 底边, 整数型, , , bottom .数据类型 显示器信息_, , MONITORINFO .成员 结构大小, 整数型, , , cbSize .成员 rcMonitor, rcMonitor, , , rcMonitor .成员 rcWork, rcWork, , , rcWork .数据类型 rcMonitor .成员 左边1, 整数型, , , left1 .成员 顶边1, 整数型, , , top1 .成员 右边1, 整数型, , , right1 .成员 底边1, 整数型, , , bottom1 .数据类型 rcWork .成员 左边2, 整数型, , , left2 .成员 顶边2, 整数型, , , top2 .成员 右边2, 整数型, , , right2 .成员 底边2, 整数型, , , bottom2 .成员 标志, 整数型, , , dwFlags
常量
.版本 2 .常量 MONITORINFOF_PRIMARY, "1" .常量 MONITOR_DEFAULTTONEAREST, "2" .常量 MONITOR_DEFAULTTONULL, "0" .常量 MONITOR_DEFAULTTOPRIMARY, "1"
易语言调用源码:
.版本 2 .程序集 窗口程序集_启动窗口 .子程序 子程序_显示器信息, 整数型 .参数 参数_显示器句柄1, 整数型 .参数 参数_显示器句柄2, 整数型 .局部变量 局部_显示器信息, 显示器信息_ .局部变量 局部_矩形, RECT 编辑框_运行结果.内容 = “显示器句柄: ” + 到文本 (参数_显示器句柄1) 局部_显示器信息.结构大小 = 40 取显示器信息_ (参数_显示器句柄1, 局部_显示器信息) 编辑框_运行结果.内容 = 编辑框_运行结果.内容 + #换行符 + “显示器宽度/高度: ” + 到文本 (局部_显示器信息.rcMonitor.右边1 - 局部_显示器信息.rcMonitor.左边1) + “x” + 到文本 (局部_显示器信息.rcMonitor.底边1 - 局部_显示器信息.rcMonitor.顶边1) 编辑框_运行结果.内容 = 编辑框_运行结果.内容 + #换行符 + “主要的显示器: ” + 到文本 (局部_显示器信息.rcWork.标志 = #MONITORINFOF_PRIMARY) .如果真 (窗口是否在显示器内_ (_启动窗口.取窗口句柄 (), #MONITOR_DEFAULTTONEAREST) = 参数_显示器句柄1) 编辑框_运行结果.内容 = 编辑框_运行结果.内容 + #换行符 + “窗口在显示器上” .如果真结束 .如果真 (点是否在显示器内_ (0, 0, #MONITOR_DEFAULTTONEAREST) = 参数_显示器句柄1) 编辑框_运行结果.内容 = 编辑框_运行结果.内容 + #换行符 + “显示器的范围(0,0)” .如果真结束 GetWindowRect (_启动窗口.取窗口句柄 (), 局部_矩形) .如果真 (矩形是否在显示器内_ (局部_矩形, #MONITOR_DEFAULTTONEAREST) = 参数_显示器句柄1) 编辑框_运行结果.内容 = 编辑框_运行结果.内容 + #换行符 + “在显示器上的窗口是长方形的” .如果真结束 编辑框_运行结果.内容 = 编辑框_运行结果.内容 + #换行符 + “” 返回 (1) .子程序 _按钮_显示器信息_被单击 枚举显示器_ (0, 0, 到数值 (&子程序_显示器信息), 0)
返回:
显示器句柄: 65537
显示器宽度/高度: 1920x1080
主要的显示器: 真
窗口在显示器上
显示器的范围(0,0)
在显示器上的窗口是长方形的