我试图从Windows API获取监视器数据.该GetSystemMetrics()命令以像素为单位返回错误的宽度.根据微软的网站,这是因为我需要SetProcessDPIAware()
这意味着我最好能够创建一个我不理解的应用程序清单.
在寻找同样低级别的替代方案时,我发现多显示器监视功能和结构.我必须通过HMONITOR访问我想要的rect结构,但得到的HMONITOR是我遇到问题的地方.
MonitorFromWindow(hwnd,MONITOR_DEFAULTTOPRIMARY)
这个命令超出范围 - 奇怪,因为GetMonitorInfo()[我需要HMONITOR]不会导致任何问题.我已经拥有windows.h并windowsx.h包括在内.我错过了一个图书馆或者问题是什么?
在另一个注意事项上,看了之后很明显,将显示器用于用户可调节也可能很好. SM_CMONITORS应该返回一个计数,但我想知道如何将这些数字转换为HMONITOR我需要获取监视器特定信息的数据.
::编辑::
我在这里进行编辑,因为"评论"功能没有为我提供足够的空间来放置所请求的代码片段
另外,我正在使用GNU GCC和MinGW
#include <iostream>//using these libraries
#include <Windowsx.h>
#include <windows.h>
using namespace std;
int main()
{
//should print screen width in pixels
LPMONITORINFO target;
//create a monitor info struct to store the data to
HMONITOR Hmon = MonitorFromWindow(hwnd,MONITOR_DEFAULTTOPRIMARY);
//create a handle to the main monitor
//(should …Run Code Online (Sandbox Code Playgroud)