在C++
我是为我的公司而言,我们的多个用户对计算机的了解很少。我们有多个带码头和外部监视器的车站。因此,用户搬到其他站时会遇到显示问题。监视大小,重复或更改频率。
我使此易于使用一键单击的工具在控制台C ++ EXE中调整其显示器大小。我遇到的问题是确定显示是笔记本电脑显示还是外部监视器。这很重要,因为我们所有的外部监视器都是1920 x 1080,但我们的一些笔记本电脑是1920 x 1200。
main.cpp:
#include <Windows.h>
#include <string>
#include <iostream>
int main()
{
DEVMODE devmode;
SetDisplayConfig(0, NULL, 0, NULL, SDC_TOPOLOGY_EXTEND | SDC_APPLY);
//long result = ChangeDisplaySettings(&devmode, 0);
DISPLAY_DEVICE displayDevice;
displayDevice.cb = sizeof(displayDevice);
int deviceIndex = 0;
while (EnumDisplayDevices(0, deviceIndex, &displayDevice, 0))
{
std::wstring deviceName = displayDevice.DeviceName;
int monitorIndex = 0;
while (EnumDisplayDevices(deviceName.c_str(), monitorIndex, &displayDevice, 0))
{
devmode.dmPelsWidth = 1920;
devmode.dmPelsHeight = 1080;
devmode.dmDisplayFrequency = 60;
devmode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_DISPLAYFREQUENCY;
devmode.dmSize = sizeof(DEVMODE);
long result = ChangeDisplaySettingsEx(deviceName.c_str(), &devmode, NULL, NULL, 0);
++monitorIndex;
}
++deviceIndex;
}
return 0;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
也许您正在寻找
display_device_removable
flag在displayDevice.stateflags
字段中?Perhaps you are looking for the
DISPLAY_DEVICE_REMOVABLE
flag in thedisplayDevice.StateFlags
field?https://learn.microsoft.com/en-us/windows/win32/api/wingdi/ns-wingdi-display_devicea