在多个监控系统上重新定位Windows

介绍 在系统与多个显示器,你可以遇到麻烦因为兼容性问题的函数: 隐藏,复制Code

SystemParametersInfo( SPI_GETWORKAREA, 0, &rc, 0 );//only primary Monitor

这是一个可能的设置两个显示:左(1)是标准的监控,和(2)扩展监控,例如,少需要帮助等信息,电子邮件,或者浏览。 背景 上周,我有一个问题,恢复一个窗口在电脑上有多个显示器。我寻找一些样品,但是没有找到好的,所以我写了一些代码来解决这个问题。我想展示我的新知识并发布在这里。 但也有其他设置;这可能看起来很奇怪,例如,正确的监控作为主要的一个。这意味着,左边的坐标监控有负面价值。 任务栏 任务栏也需要一些空间,所以最好是这个地区不会用于显示窗口。任务栏可以有不同的职位。这是说明的标准位置(1)三个不同位置(2)-(4)。 使用的代码 我把所有的有趣的代码在一个设计类集中和易用性。因为# define COMPILE_MULTIMON_STUBS,你必须支付一些关注如何使用类。如果你找到一个更好的方法,请让我知道。 现在我有编码一个全局对象,所以你不需要额外的对象,如果包括可用的对象文件在您的项目中。 隐藏,复制Code

//Fetch informations
int cnt ) gMonitor.GetCount(); 
int iMonitor = gMonitor.GetPrimary();

//test for repositioning
CRect rc;
GetWindowRect( rc );

iMonitor = gMonitor.GetNearestDisplay( rc ); //also overloaded for point

if( !gMonitor.EnsureInMonitor( rc, iMonitor ) )
    MoveWindow( rc );

的兴趣点 这段代码可以帮助您与多个监控系统更好的用户体验,因为一个窗口会感动如果它不适合在一个物理屏幕。 真正棘手的。当主显示是正确的(或上?),然后左边(上)有负面价值观和分级需要一些额外的代码行。 同时,注意任务栏区域,是另一个陷阱。 历史 最初版本:2007年7月24日。更新:2007年8月07:照片和workarea扩展。 本文转载于:http://www.diyabc.com/frontweb/news11094.html

posted @ 2020-08-11 03:32  Dincat  阅读(167)  评论(0编辑  收藏  举报