关于clistctrl中用for循环创建进程为何只执行最后一个?
老林头 2013-09-29 09:08:09 不好意思,纯新人,没用过vc,最近在学这东西,用clistctrl建立了一个列表,选择多个的时候只执行最后一行的创建目录?代码如下:
如果有2行的话,创建进程的时候,只创建最后一个目录,前面的两个都不创建。
void CdxDlg::OnDownload()
{
// TODO: 在此添加命令处理程序代码
CString str;
for(int i=0; i<m_ListCtrl.GetItemCount(); i++)
{
if( m_ListCtrl.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED )
{
CString downloadstr;
downloadstr=m_ListCtrl.GetItemText(i,0);
if (downloadstr != "准备下载")
{
MessageBox("下载地址不正确", "提示", MB_ICONINFORMATION | MB_OK);
ready = FALSE;
}
else
{
ready = TRUE;
}
//如果可以下载,则开始进行下载处理。
if (ready == TRUE)
{
bookname=m_ListCtrl.GetItemText(i,2);
booknumber=m_ListCtrl.GetItemText(i,3);
HANDLE hwndreal=CreateThread (NULL,0,(LPTHREAD_START_ROUTINE)threadfun,NULL,0,0);
CloseHandle(hwndreal);
}
}
}
}
void threadfun()
{
if (bookname != "")
{
strcpy(savepath,defaultpath);
lstrcat(savepath,bookname);
lstrcat(savepath,booknumber);
}
lstrcat(savepath,"\\");
CreateDirectory(savepath,NULL);
TCHAR output[MAX_PATH];
sprintf(output,"%s%s",savepath,"output");
CreateDirectory(output,NULL);
}