C++ | 获取第二个屏幕坐标信息

举报
黑兔子 发表于 2022/08/02 13:56:39 2022/08/02
【摘要】 C++获取第二个屏幕坐标信息。
  1. 定义全局变量:

CRect rect[2] = {(0,0,0,0),(0,0,0,0)}; // 分别存放两个屏幕的坐标

  1. 定义全局函数:

BOOL CALLBACK Monitorenumproc( HMONITOR hMonitor,HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData)
{
static BOOL first = FALSE; //重复检测标志
MONITORINFO monitorinfo; //显示器信息结构体
monitorinfo.cbSize = sizeof(MONITORINFO);
GetMonitorInfo(hMonitor, &monitorinfo); //获取显示器信息

if(monitorinfo.dwFlags == MONITORINFOF_PRIMARY) //如果是主显示器
{
if(!first) //如果是第一次检测到主显示器
{
first = TRUE;
//将主显示器的坐标信息存到第一个位置
rect[0] = monitorinfo.rcMonitor;
return TRUE;
}else
{
first = FALSE;
return FALSE;
}
}else//如果不是主显示器,将显示器的坐标信息存到第二个位置
{
rect[1] = monitorinfo.rcMonitor;
}
return TRUE;
}

  1. 在主函数调用:

EnumDisplayMonitors(NULL, NULL, Monitorenumproc, 0);  // 枚举屏幕的系统函数

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。