只使用C#控制台而不是C#Forms应用程序,是否可以在屏幕上创建一个大的白色矩形?
如果可能,它应覆盖整个屏幕.我知道我必须使用System.Drawing并尝试了几个步骤,但没有人会在我的屏幕上打印任何东西!
环顾网络,我发现大多数人认为GetDC(NULL)将获得整个主监视器的设备上下文(左上角为0,0).但是,我感觉大多数人只是说,因为这就是GetDC的msdn页面可能会说的.
但是,如果您查看以下两个页面(至少这两个)似乎是说GetDC(NULL)返回一个覆盖整个虚拟屏幕的设备上下文(包含连接到系统的每个监视器的屏幕).
(1)https://www.microsoft.com/msj/0697/monitor/monitor.aspx - >在页面中搜索"这是获取虚拟桌面的RECT"并查看该语句周围的位(特别是GetDC)它上面的(NULL)).
(2)http://msdn.microsoft.com/en-gb/library/windows/desktop/dd162610%28v=vs.85%29.aspx - >在页面中搜索"GetDC(NULL)"
我一直试图找出它究竟是什么,但是众多相互矛盾的观点让我失望.
有没有人对此有任何实际经验,可以在多监视器系统上进行测试吗?(我只有一台显示器,所以我不能.)
是否有覆盖整个主监视器的DC或覆盖整个虚拟屏幕的DC?
编辑
对于任何想要试用它的人来说,在我的系统上,如果我创建一个默认项目并将以下内容放在WinMain中,它会将屏幕变黑.如果您有多个显示器并且您尝试了它,问题就变成它只是将您的主显示器变为黑色或所有显示器?
HDC hdc = GetDC(NULL);
RECT r = {LONG_MIN, LONG_MIN, LONG_MAX, LONG_MAX};
FillRect(hdc, &r, (HBRUSH)(COLOR_BTNTEXT + 1));
ReleaseDC(NULL, hdc);
Run Code Online (Sandbox Code Playgroud)