我做的一个SDI的程序,在View类里面要调用一个函数(如下)
void Eng_SetLegend(CMoMap &map,C_legend &legend)
{
//单步调试时legend值为:C_legend hWnd=???
LPUNKNOWN pUnknown = map.GetControlUnknown();
LPDISPATCH pDispatch = 0;
// QI for the IDispatch pointer
if (pUnknown)
pUnknown->QueryInterface(IID_IDispatch, (void**)&pDispatch);
// Link the legend with the map control
if (pDispatch)
legend.setMapSource(&pDispatch);
//。。。。。。。。。。。。。。
// Release the dispatch pointer
if (pDispatch)
pDispatch->Release();
}
调用代码是:
Eng_SetLegend(m_viewmap,pLegend->m_legend);
map是一个控件的变量在View(这里是FormView)里,legend也是一个控件的变量在一个对话框CLegend里,pLegend是CLegend在View里面的一个指针(没有赋值),对话框CLegend在一个Tab Control里面,Tab Control就跟VC6的工作区的一样嵌套在主窗体中。
现在程序运行有错误,问题出在Eng_SetLegend函数的参数legend得不到对应的控件的变量。
我该怎么做?
[此贴子已经被作者于2006-8-30 10:17:29编辑过]