c++ 窗口 GetPixel屏幕取点RGB问题

问题遇到的现象和发生背景

win32窗口程序 窗口透明穿透处理 用GetPixel取点 窗口内取点正常 取屏幕点窗口就死机,求解!谢谢!

用代码块功能插入代码,请勿粘贴截图
 case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);
            // TODO: 在此处添加使用 hdc 的任何绘图代码...
            HDC            hdcScreen;
            hdcScreen = CreateDC(TEXT("DISPLAY"), NULL, NULL, NULL);

            int i, l, t, mqx, mqy;
            float q1, q2;
            COLORREF bdian = RGB(238, 238, 238);    

                             //for循环

            COLORREF diana = GetPixel(hdcScreen, i + 1, l); //这个错误;
            COLORREF diana = GetPixel(hdc, i + 1, l);           //这个正常;
                    
                
            EndPaint(hWnd, &ps);
        }

我想要达到的结果

我想取屏幕上的点的色值,是哪里错了?
另外在win7下,选择个性化-windows 经典模式下,一切正常!
但窗口太难看了。