EasyX的在线文档说GetImageHDC的参数为NULL时,表示获取默认绘图窗口的HDC句柄。下面的代码用GDI的SetPixel函数来测试,但有些地方会变成黑色的:
// 编译环境:Visual Studio 2013, EasyX_26.1.1
#include "easyx.h"
#include <conio.h>
void RGBCube(HDC hDC)
{
int r, g, b;
// draw and label axes
// Red = 0xFF
for (g=0; g<256; g++/*, Sleep(1)*/)
for (b=0; b<256; b++)
SetPixel(hDC, g, 383-b, RGB(0xFF, g, b));
// Blue = 0xFF, top, sheared
for (g=0; g<256; g++/*, Sleep(1)*/)
for (r=0; r<256; r+=2)
SetPixel(hDC, g+128-r/2, r/2, RGB(r, g, 0xFF));
// Green = 0xFF, right, sheared
for (b=0; b<256; b++/*, Sleep(1)*/)
for (r=0; r<256; r+=2)
SetPixel(hDC, 383-r/2, 255+r/2-b, RGB(r, 0xFF, b));
}
int main()
{
initgraph(384, 384);
MessageBox(GetHWnd(), GetEasyXVer(), TEXT("Version"), MB_OK);
RGBCube(GetImageHDC());
FlushBatchDraw();
_getch();
return 0;
}
加上Sleep(1)的延时就更明显了:截图
用EasyX_2018春分版编译的话,在绘图的时候不停地将窗口拖到屏幕外然后再拖回来,有可能变成这样:截图




