Windows 使用BitBlt从屏幕写入屏幕
我试图复制屏幕的某些部分,修改它们,然后将这些部分复制回屏幕。这是在Windows中,使用C++ + < /P> 我的代码的一般结构如下所示:Windows 使用BitBlt从屏幕写入屏幕,windows,winapi,graphics,bitmap,Windows,Winapi,Graphics,Bitmap,我试图复制屏幕的某些部分,修改它们,然后将这些部分复制回屏幕。这是在Windows中,使用C++ + < /P> 我的代码的一般结构如下所示: HDC hdcDesktop = GetDC(NULL); HDC hdcTemp = CreateCompatibleDC(hdcDesktop); BitBlt(hdcTemp, 0, 0, 100, 100, hdcDesktop, 100, 100, SRCCOPY); BitBlt(hdcDesktop, rand() % 1920, ran
HDC hdcDesktop = GetDC(NULL);
HDC hdcTemp = CreateCompatibleDC(hdcDesktop);
BitBlt(hdcTemp, 0, 0, 100, 100, hdcDesktop, 100, 100, SRCCOPY);
BitBlt(hdcDesktop, rand() % 1920, rand() % 1080, 100, 100, hdcTemp, 0, 0, SRCCOPY);
这将从(100100)开始将屏幕的100x100部分复制到屏幕的某个随机部分。然而,这不起作用。我做错了什么?此代码存在一些问题:
- 目的地左上角(nXDest,nYDest)
- 副本的宽度/高度(nWidth,nHeight)
- soruce的左上角(nXSrc、nYSrc)
您忘记了CreateCompatibleBitmap+SelectObject。啊哈。我刚才在看那一页,但是弄糊涂了,所以我把上面的部分看得更清楚了。谢谢谢谢,这对我来说很有用(5年前!)我想最后为这添加一些上下文-我试图制作一个恼人的程序,除了完全搞乱某人的屏幕外,没有任何实际目的。所以,我肯定会称之为肆无忌惮的滥用,对于这个项目来说,效果非常好。