VC_MFC_如何实现线程更新改变对话框数据_LISTCTRL

今天在操作线程的时候,遇到一个问题:
那就是如何在线程里把数据写到对话框控件中去,比如一个listctrl控件中。百度了一下,竟然有说不可以的。。
不过我动了一个脑筋,还是可以搞定的,我都实现 了的。
做法如下:
1.在你的cpp文件中定义你的对话框指针,要定义成全局变量哦。
static Cnbqq_upload_mysqlDlg * pDlg;
2.在你的对话框初始化函数(BOOL Cnbqq_upload_mysqlDlg::OnInitDialog())中添加:
pDlg = this;//知道这是什么意思吧?就是把你的对话框指针弄成一个静态全局变量!
3.这就可以在你的线程里调用啦!

UINT Cnbqq_upload_mysqlDlg::MyThreadFunction(LPVOID pParam)
{
      CFtpConnection* FtpConnection = (CFtpConnection*)pParam;
      for (int i=0 ;im_CtrlListCtrlPicsFind.GetItemCount();i++)//这样就可以啦
    {
       CString strFile;
	strFile = pDlg->m_CtrlListCtrlPicsFind.GetItemText(i,1);
        }

}

代码我是自己测试ok,可用的,有问题的可以给我留言讨论。这个方法其实是非常有用处的!!!

One comment

Leave a Reply