代码如下:
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发现是内存不够,不知道是什么问题,请各位高手帮忙看看。
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发现是内存不够,不知道是什么问题,请各位高手帮忙看看。
plist[2].x = 200;//??? 怎么2个x,莫非是plist[2].y = 200