代码如下:
CRgn rg; POINT * plist = new POINT[4];
plist[0].x = 100;
plist[0].y = 100;
plist[1].x = 100;
plist[1].y = 200;
plist[2].x = 200;
plist[2].x = 200; BOOL a = rg.CreatePolygonRgn (plist, 3, WINDING);    TCHAR szBuf[80]; 
    LPVOID lpMsgBuf;
    DWORD dw = GetLastError();     FormatMessage(
        FORMAT_MESSAGE_ALLOCATE_BUFFER | 
        FORMAT_MESSAGE_FROM_SYSTEM,
        NULL,
        dw,
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
        (LPTSTR) &lpMsgBuf,
        0, NULL );    wsprintf(szBuf, 
        "failed with error %d: %s", 
        dw, lpMsgBuf); 
 
    AfxMessageBox(szBuf);     LocalFree(lpMsgBuf); CBrush br;
br.CreateHatchBrush(HS_CROSS, RGB(0,0,128));
pDC->FillRgn(&rg, &br);
br.DeleteObject(); delete plist;执行到 BOOL a = rg.CreatePolygonRgn (plist, 3, WINDING);
的时候,总是返回错误,getlasterror发现是内存不够,不知道是什么问题,请各位高手帮忙看看。