在VC++6.0里使用MapX控件,用m_ctrlMapX.Create(NULL,WS_VISIBLE, CRect(0,0,400,300), this, VIDC_MAP)创建控件后,调用layer = m_crtlMapX.GetLayers().Item("......")获取图层时,出现断言错误,原因在于GerLayers()函数调用了GetProperty(0x5, VT_DISPATCH, (void*)&result),然而这个函数的“ASSERT(m_pCtrlSite != NULL); ” 一行出错。但是为什么m_pCtrlSite是NULL呢,这个变量到底在何时被赋值的,是创建MapX控件的时候?还请懂得人指点指点,谢谢。(下面附GetProperty()的代码:
void CWnd::GetProperty(DISPID dwDispID, VARTYPE vtProp,
void* pvProp) const
{
ASSERT(m_pCtrlSite != NULL);    // not an OLE control (not yet, at least) if (m_pCtrlSite == NULL)
return; const_cast<CWnd*>(this)->InvokeHelper(dwDispID, DISPATCH_PROPERTYGET,
vtProp, pvProp, NULL);
}