遇到的问题:
在MFC程序中,新建了一个listcontrol控件,设置成了report属性,在OnInitDialog()中,新建行列及数值正常。同时新建了个按钮控件,在按钮的单击事件中新建listcontrol控件的列及数值也正常,但在自定义的一个类中,则无法实现listcontrol控件新建列及更新列中数值的情况,请问下这是怎么回事?
代码片段:
BOOL CInfoCenterDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
ShowWindow(SW_MAXIMIZE);
ShowWindow(SW_MINIMIZE);
CRect rect;
m_list.GetClientRect(&rect);
m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_list.InsertColumn(0, _T("con"), LVCFMT_CENTER, rect.Width() / 9, 0);
m_list.InsertColumn(1, _T("ll"), LVCFMT_CENTER, rect.Width() / 9, 1);
m_list.InsertItem(0, _T("test"));
m_list.SetItemText(0, 1, _T("111"));
m_list.SetItemText(0, 2, _T("222"));
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
这里正常实现。
void CInfoCenterDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
m_list.InsertItem(0, _T("test"));
m_list.SetItemText(0, 1, _T("111"));
m_list.SetItemText(0, 2, _T("222"));
}
这个也能实现。
class test:public CInfoCenterDlg
{
...
void fun()
{
m_list.InsertItem(0, _T("test"));
m_list.SetItemText(0, 1, _T("111"));
m_list.SetItemText(0, 2, _T("222"));
}
...
}
这种情况就实现不了,请问下这是为啥,咋解决?谢谢!