lpPoints指向一个POINT结构或CPoint数组,Count是顶点的数目,即表示多边形有多少个顶点,nMode是填充模式,可为ALTERNATE或WINDING.
按照这样说法应该没错呀。可是我也不知怎么改。
_AFXWIN_INLINE BOOL CRgn::CreatePolygonRgn(LPPOINT lpPoints, int nCount, int nMode)
{ return Attach(::CreatePolygonRgn(lpPoints, nCount, nMode)); }
程序执行到这一步时,应该都还正确,lpPoints的值为0x00443b80
BOOL CGdiObject::Attach(HGDIOBJ hObject)
{
ASSERT(m_hObject == NULL); // only attach once, detach on destroy
if (hObject == NULL)
return FALSE;
CHandleMap* pMap = afxMapHGDIOBJ(TRUE); //create map if not exist
ASSERT(pMap != NULL);
pMap->SetPermanent(m_hObject = hObject, this);
return TRUE;
}
到了ASSERT(m_hObject == NULL); 这一步时m_hObject的值为0x00000000
,应该也对。到下一步if (hObject == NULL)
return FALSE; 执行到这一句时, hObject的值为0x00000000,所以多边形就没有创建函数就返回了。我想问题就出在这里,也不知道是什么原因?
Nothing大哥是怎么认为呢?请多指教,小弟先谢过了。