相关疑难解决方法(0)

在没有形式的屏幕上画画

只使用C#控制台而不是C#Forms应用程序,是否可以在屏幕上创建一个大的白色矩形?

如果可能,它应覆盖整个屏幕.我知道我必须使用System.Drawing并尝试了几个步骤,但没有人会在我的屏幕上打印任何东西!

c# console drawing

27
推荐指数
2
解决办法
4万
查看次数

GetDC(NULL)获取主监视器或虚拟屏幕?

环顾网络,我发现大多数人认为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)

c c++ winapi

9
推荐指数
1
解决办法
9125
查看次数

标签 统计

c ×1

c# ×1

c++ ×1

console ×1

drawing ×1

winapi ×1