在线程里 访问CListCtrl
主窗体上有个 CListView
我需要在一个线程里 控制 CListView 中的 CListCtrl , 进行 InsertItem 的操作。
如下:
在线程里
CMyApp * app = (CMyApp*)::AfxGetApp();
CListCtrl *myList = &(app->m_MyListView->GetListCtrl());
myList->InsertItem(0,"test");// 这一句无法执行 报 Access Violation 的错误
------解决方案--------------------可以试试用虚拟链表(CListCtrl.OnData = True)的形式,把数据跟一个vecotr<Type>关联,再让CListCtrl 跟vector 关联,让线程里去操作vector,再发消息到窗口去刷新CListCtrl
------解决方案--------------------线程函数有个参数LPVOID p
在函数里面转换CListCtrl *ctrl = (CListCtrl*) p;
------解决方案--------------------直接在线程里操作控件,容易与主线程里的操作冲突。