windows 获取显示器像素分辨率
时间: 2023-08-12 11:20:02 浏览: 160
可以使用 `GetSystemMetrics` 函数获取当前系统的显示器像素分辨率。下面是示例代码:
```cpp
int screenWidth = GetSystemMetrics(SM_CXSCREEN);
int screenHeight = GetSystemMetrics(SM_CYSCREEN);
```
其中 `SM_CXSCREEN` 和 `SM_CYSCREEN` 分别代表屏幕的宽度和高度,返回值为像素单位。这段代码返回的是当前系统所有显示器的分辨率,如果要获取指定显示器的分辨率,可以使用 `EnumDisplayMonitors` 函数遍历所有显示器,并使用 `GetMonitorInfo` 函数获取指定显示器的信息,包括分辨率。
相关问题
windows 获取显示器真实分辨率 EnumDisplaySettings
`EnumDisplaySettings` 函数可以用于获取指定显示器的真实分辨率。下面是示例代码:
```cpp
void GetRealResolution(HWND hWnd)
{
// 获取显示器设备上下文
HDC hdc = ::GetDC(hWnd);
// 获取显示器的物理宽度和高度
int widthMM = GetDeviceCaps(hdc, HORZSIZE);
int heightMM = GetDeviceCaps(hdc, VERTSIZE);
// 获取显示器的水平和垂直分辨率
int widthPixels = GetDeviceCaps(hdc, HORZRES);
int heightPixels = GetDeviceCaps(hdc, VERTRES);
// 计算真实分辨率
int realWidth = MulDiv(widthPixels, 254, widthMM);
int realHeight = MulDiv(heightPixels, 254, heightMM);
// 输出结果
CString str;
str.Format(_T("Real resolution: %dx%d"), realWidth, realHeight);
AfxMessageBox(str);
// 释放设备上下文
::ReleaseDC(hWnd, hdc);
}
```
其中,`GetDeviceCaps` 函数用于获取显示器的物理尺寸和像素分辨率。根据物理尺寸和像素分辨率的比例,可以计算出真实分辨率。注意,这里获取的是指定窗口所在的显示器的真实分辨率。如果要获取所有显示器的真实分辨率,需要遍历所有显示器并分别调用上述代码。
delphi怎么获取显示器分辨率
在Delphi中,你可以通过TScreen对象来获取显示器的分辨率。以下是一个简单的示例代码:
```pascal
uses
Windows,
Graphics;
var
Screen: TScreen;
Monitor: TMonitor;
begin
// 获取当前屏幕
Screen := TScreen.FromDeviceID(Screen.Cursors[0].DeviceID);
// 获取显示器信息
Monitor := Screen.Monitor;
var
Width, Height: Integer;
// 获取分辨率
Width := Monitor.WorkingArea.Right - Monitor.WorkingArea.Left;
Height := Monitor.WorkingArea.Bottom - Monitor.WorkingArea.Top;
// 输出分辨率
ShowMessage('当前显示器分辨率为 ' + IntToStr(Width) + 'x' + IntToStr(Height));
end;
```
在这个例子中,首先从所有屏幕上选择一个,然后通过`WorkingArea`属性获取显示器的工作区域大小,即实际显示的像素数。
阅读全文