定义了一个对话框类CLayerList,这个对话框上有个CListCtrl控件,定义其控制变量为
CListCtrl m_LayerList;
这个对话框是一个无模式对话框,他的创建是在CMainFrame中的OnCreate函数中创建的,
在CLayerList的初始化中我做了对List标题栏初始化操作
BOOL CLayerList::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_LayerList.InsertColumn(0,_T("图层名"),LVCFMT_LEFT,100);
m_LayerList.InsertColumn(1,_T("详细信息"),LVCFMT_LEFT,100);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
同时自定义了一个函数来完成对List内容的添加UpdateLayerList(***);
这个初始化没有问题,现在我在另一个类中欲根据我取得的值来添加这个List的内容,
CLayerList m_pLayerList.UpdateLayerList(***);
此时在调用这个UpdateLayerList(***)的时候就出现问题了:
这个函数中的部分语句是这样的:index=m_LayerList.InsertItem(H,FieldName);
我跟踪到这的时候发现这个m_LayerList根本没值,我觉得它的初始化已经在创建对话框的时候完成了吧,怎么现在调用时就不能使用?应该怎么使用?请大家帮帮忙
CListCtrl m_LayerList;
这个对话框是一个无模式对话框,他的创建是在CMainFrame中的OnCreate函数中创建的,
在CLayerList的初始化中我做了对List标题栏初始化操作
BOOL CLayerList::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_LayerList.InsertColumn(0,_T("图层名"),LVCFMT_LEFT,100);
m_LayerList.InsertColumn(1,_T("详细信息"),LVCFMT_LEFT,100);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
同时自定义了一个函数来完成对List内容的添加UpdateLayerList(***);
这个初始化没有问题,现在我在另一个类中欲根据我取得的值来添加这个List的内容,
CLayerList m_pLayerList.UpdateLayerList(***);
此时在调用这个UpdateLayerList(***)的时候就出现问题了:
这个函数中的部分语句是这样的:index=m_LayerList.InsertItem(H,FieldName);
我跟踪到这的时候发现这个m_LayerList根本没值,我觉得它的初始化已经在创建对话框的时候完成了吧,怎么现在调用时就不能使用?应该怎么使用?请大家帮帮忙
你这样只是重新创建了一个CLayerList的实例m_pLayerList,而不是操作你已经打开的那个无模式对话框
CMainFrame * pMainFrm = ( CMainFrame * )theApp->GetMainWnd(); //得到主窗口
// 你的非模态窗口在主窗口中创建,应该是主窗口的变量
pMainFrm->pDlg; //就是无模式对话框的指针