易语言GetMonitorInfoA取显示器信息

用到的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)
    编辑框_运行结果.内容 = 编辑框_运行结果.内容 + #换行符 + “显示器的范围(00)”
.如果真结束
GetWindowRect (_启动窗口.取窗口句柄 (), 局部_矩形)
.如果真 (矩形是否在显示器内_ (局部_矩形, #MONITOR_DEFAULTTONEAREST) = 参数_显示器句柄1)
    编辑框_运行结果.内容 = 编辑框_运行结果.内容 + #换行符 + “在显示器上的窗口是长方形的”
.如果真结束
编辑框_运行结果.内容 = 编辑框_运行结果.内容 + #换行符 + “”
返回 (1)
 
.子程序 _按钮_显示器信息_被单击
 
枚举显示器_ (0, 0, 到数值 (&子程序_显示器信息), 0)

返回:
显示器句柄: 65537
显示器宽度/高度: 1920x1080
主要的显示器: 真
窗口在显示器上
显示器的范围(0,0)
在显示器上的窗口是长方形的


发布日期:

所属分类: 易语言 标签: