菜鸟问题:怎样往ListCtrl上添加item pListCtrl = (CListCtrl *) pWnd->GetDlgItem(IDC_IPLIST);这句出错???可能你传的pWnd是一个临时变量 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试试这样DWORD WINAPI ListenThreadProc(HWND hwnd){CWnd* pWnd = CWnd::FromHandlePermanent(hwnd);if( pWnd){CListCtrl* pListCtrl;pListCtrl = (CListCtrl *) pWnd->GetDlgItem(IDC_IPLIST);... CListCtrl* pListCtrl = (CListCtrl*)CWnd::GetDlgItem(IDC_IPLIST); to strip(阿飞):如果这样的,那么传进来的参数是什么啊 看看msdn关于CListCtrl的帮助 传进来的参数 不能是CWnd*, 要传对话框的的HANDLE.(用GetSafeHwnd得到)然后再线程内再Attach 成 那个对话框地CWnd*, 就行了,因为 线程间传递MFC类 是需要这样的!!! 但是我的对话框成员变量是放在视图中的在文档中怎样才可以访问从而得到呢对话框的的HANDLE呢 LV_COLUMN lvm;lvm.mask=LV_FMT|LV_SUBITEM|LV_TEXT|LV_WIDTH;lvm.fmt=LVFMT_LEFT;//OR ELSElvm.pzsText="your name";//maybe the pzsText is not rightlvm.cx=120;lvm.isubitem=0;m_ctrllist.insertcolum(0,&lvm);//to do: add your other code here 我改了以后:DWORD WINAPI ListenThreadProc(HWND hWnd){......CWnd* pWnd = ::AfxGetMainWnd();CListCtrl* pListCtrl; if(pWnd) pListCtrl = (CListCtrl *)pWnd->GetDlgItem(IDC_IPLIST);pListCtrl->InsertItem(1,"IP");pListCtrl->SetItemText(1,1,"IP");pListCtrl->SetItemText(1,2,"IP");pListCtrl->SetItemText(1,3,"IP");pListCtrl->SetItemText(1,4,"IP");pListCtrl->SetItemText(1,5,"IP");pListCtrl->SetItemText(1,6,"IP");。}但是此时pListCtrl->InsertItem语句出错大家帮忙分析一下啊 DWORD WINAPI ListenThreadProc(HWND hWnd){......CWnd* pWnd = ::AfxGetMainWnd();CListCtrl* pListCtrl; if(pWnd) pListCtrl = (CListCtrl *)pWnd->GetDlgItem(IDC_IPLIST);pListCtrl->InsertItem(1,"IP");pListCtrl->SetItemText(1,1,"IP");pListCtrl->SetItemText(1,2,"IP");pListCtrl->SetItemText(1,3,"IP");pListCtrl->SetItemText(1,4,"IP");pListCtrl->SetItemText(1,5,"IP");pListCtrl->SetItemText(1,6,"IP");。}但是此时pListCtrl->InsertItem语句出错大家帮忙分析一下啊 pListCtrl->InsertItem(1,"IP")改为:int nowItem=pListCtrl->InsertItem(0,"IP");pListCtrl->SetItemText(nowItem,1,"xxxx");pListCtrl->SetItemText(nowItem,2,"xxx");.......... 但是很奇怪的是,只要在线程以外用以上的语句都是对的一在线程内用的话,就提示我wincore.cpp第958行出错 你可能要在工作线程中作如下操作,比如在一个基于对话框(假设为CInitDlg)的程序,假设工作线程函数为SetMyIcon(LPVOID pParam);可写入如下代码: CInitDlg *pDlg=(CInitDlg*)pParam;接下来就可利用pDlg在工作线程函数中进行各控件操作,在基于对话框的程序中这种方法是行得通的,你可试试看. EnumWindows不到窗口 动态库中读取数据库 用过的进来看看 这样获得子进程文件句柄? 菜鸟提问,如何在基于MFC的COM组件中显示一个非模态对话框 为什么LoadImage读不到BMP? 连接时错误,重定义问题 关于mime 请问各位:学Java有钱途,还是学c#有钱途 一个关于虚拟存储器的问题,大家帮个忙看看!!! 请教 CTabCtrl 的应用问题 在listctrl控件的第2列中加图片怎么加不上??? 请教一个函数的参数问题
{
CWnd* pWnd = CWnd::FromHandlePermanent(hwnd);
if( pWnd)
{
CListCtrl* pListCtrl;
pListCtrl = (CListCtrl *) pWnd->GetDlgItem(IDC_IPLIST);
...
如果这样的,那么传进来的参数是什么啊
然后再线程内再Attach 成 那个对话框地CWnd*, 就行了,
因为 线程间传递MFC类 是需要这样的!!!
在文档中怎样才可以访问从而得到呢对话框的的HANDLE呢
lvm.mask=LV_FMT|LV_SUBITEM|LV_TEXT|LV_WIDTH;
lvm.fmt=LVFMT_LEFT;//OR ELSE
lvm.pzsText="your name";//maybe the pzsText is not right
lvm.cx=120;
lvm.isubitem=0;
m_ctrllist.insertcolum(0,&lvm);
//to do: add your other code here
DWORD WINAPI ListenThreadProc(HWND hWnd)
{
...
...
CWnd* pWnd = ::AfxGetMainWnd();
CListCtrl* pListCtrl;
if(pWnd)
pListCtrl = (CListCtrl *)pWnd->GetDlgItem(IDC_IPLIST);pListCtrl->InsertItem(1,"IP");
pListCtrl->SetItemText(1,1,"IP");
pListCtrl->SetItemText(1,2,"IP");
pListCtrl->SetItemText(1,3,"IP");
pListCtrl->SetItemText(1,4,"IP");
pListCtrl->SetItemText(1,5,"IP");
pListCtrl->SetItemText(1,6,"IP");
。
}
但是此时pListCtrl->InsertItem语句出错
大家帮忙分析一下啊
{
...
...
CWnd* pWnd = ::AfxGetMainWnd();
CListCtrl* pListCtrl;
if(pWnd)
pListCtrl = (CListCtrl *)pWnd->GetDlgItem(IDC_IPLIST);pListCtrl->InsertItem(1,"IP");
pListCtrl->SetItemText(1,1,"IP");
pListCtrl->SetItemText(1,2,"IP");
pListCtrl->SetItemText(1,3,"IP");
pListCtrl->SetItemText(1,4,"IP");
pListCtrl->SetItemText(1,5,"IP");
pListCtrl->SetItemText(1,6,"IP");
。
}
但是此时pListCtrl->InsertItem语句出错
大家帮忙分析一下啊
pListCtrl->InsertItem(1,"IP")改为:
int nowItem=pListCtrl->InsertItem(0,"IP");
pListCtrl->SetItemText(nowItem,1,"xxxx");
pListCtrl->SetItemText(nowItem,2,"xxx");
..........
一在线程内用的话,就提示我wincore.cpp第958行出错
CInitDlg *pDlg=(CInitDlg*)pParam;
接下来就可利用pDlg在工作线程函数中进行各控件操作,在基于对话框的程序中这种方法是行得通的,你可试试看.