我们知道Windows 7可用的DPI缩放比例分别为100%,125%,150%和200%。 这四个DPI百分比的实际DPI值是
if(a == b && b == c && c == d && d == e && e == f){
your code
}
参考DPI缩放的链接: http://www.techrepublic.com/blog/windows-and-office/get-a-better-view-in-windows-7-by-adjusting-dpi-scaling/
使用C#我想获取DPI值。所以通过遵循C#代码我试图实现。
Percentage - DPI Values
100% - 96
125% - 120
150% - 144
200% - 192
获得如下输出,这对于150%和200%是错误的
float x=0;
float y=0;
Graphics gp = Graphics.FromHwnd(IntPtr.Zero);// we can also use this.CreateGraphics()
x = gp.DpiX;
y = gp.DpiY;
答案 0 :(得分:1)
如果你还没有宣布你的应用程序是" DPI意识到",Windows将骗你,假装它被设置为96 DPI(尽管它不是)并且要小心扩展您的应用程序本身。
你可以修复"这可以通过
QNetworkAccessManager * manager = new QNetworkAccessManager(this);
QNetworkProxy proxy;
proxy.setType(QNetworkProxy::Socks5Proxy);
proxy.setHostName("localhost");
proxy.setPort(1234);
manager -> setProxy(proxy);
QNetworkReply * reply = manager -> get(
QNetworkRequest(
QUrl("http://listen.42fm.ru:8000/stealkill")
)
);
QMediaPlayer * player = new QMediaPlayer();
player -> setMedia(QMediaContent(), reply);
player.play();
- 条目添加到您的应用程序清单文件或dpiAware
Windows API方法。两者的例子都可以在例如SO答案中找到:
为了使事情变得更加复杂,Windows 8.1引入了每个监视器的DPI设置,弃用SetProcessDPIAware
。这实际上是一件好事,但是it's hard to get it right。