|
我创建了个MFC工程,界面是左树右图的方式,并在右边下方显示操作结果.
现在把窗口分割成四个子窗口,我想在右边下方显示每一步操作的结果,这是一个CListView,我在OnCreate方法中初始化这个控件没问题,但是在我自定义的输出函数中一直输出不成功,跟进去发现是一个断言出错,原因是所取得的hWnd为空,百思不得其解,请各位达人指教.
代码如下:
int COpResultView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CListView::OnCreate(lpCreateStruct) == -1)
return -1;
//从ListView中取得ListCtrl控件
CListCtrl& m_ListControl = GetListCtrl();
//设置ListCtrl风格
m_ListControl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES
|LVS_EX_HEADERDRAGDROP|LVS_EX_REGIONAL);
//插入列名
m_ListControl.InsertColumn(0,"主机",LVCFMT_CENTER,150);
m_ListControl.InsertColumn(1,"IP",LVCFMT_CENTER,100);
m_ListControl.InsertColumn(2,"端口",LVCFMT_CENTER,50);
m_ListControl.InsertColumn(3,"操作",LVCFMT_CENTER,200);
m_ListControl.InsertColumn(4,"时间",LVCFMT_CENTER,170);
m_ListControl.InsertItem(0,"BMW 317i");
m_ListControl.SetItemText(0,1,"Sport");
m_ListControl.SetItemText(0,2,"Germany");
m_ListControl.InsertItem(0,"Ford Fiesta");
m_ListControl.SetItemText(0,1,"Family");
m_ListControl.SetItemText(0,2,"USA");
return 0;
}
这个方法没有问题,但我自定义的输出函数就有问题了.
void COpResultView::ShowOpResult(CString hostname, CString IP, int port,
CString Result, CString time)
{
CListCtrl& m_ListControl = GetListCtrl();
CString tempport;
tempport.Format("%d",port);
m_ListControl.InsertItem(0,_T(hostname));
m_ListControl.SetItemText(0,1,_T(IP));
m_ListControl.SetItemText(0,2,_T(tempport));
m_ListControl.SetItemText(0,3,_T(Result));
m_ListControl.SetItemText(0,4,_T(time));
}
这个方法m_ListControl中的hWnd一直为空,不能对它进行操作.
我在MainFrm中是COpResultView OpResult;然后调用ShowOpResult()的.
不知CListCtrl& m_ListControl = GetListCtrl();是否有错,不知是否与窗体拆分有关系,请各位高手指教,谢谢. |
|