社区
进程/线程/DLL
帖子详情
怎样使用CProgressCtrl显示文件拷贝的进度?
counteagler
2005-07-06 03:09:38
CopyFile从硬盘向U盘拷文件,想用CProgressCtrl显示拷贝的进度,请达人赐教,最好有代码。
...全文
612
2
打赏
收藏
怎样使用CProgressCtrl显示文件拷贝的进度?
CopyFile从硬盘向U盘拷文件,想用CProgressCtrl显示拷贝的进度,请达人赐教,最好有代码。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
elyta
2005-07-07
打赏
举报
回复
我好像已经在另一版回复过你的这个问题了哦!
用以下两个函数:
BOOL CopyFileEx(LPCTSTR lpExistingFileName, // name of existing file
LPCTSTR lpNewFileName, // name of new file
LPPROGRESS_ROUTINE lpProgressRoutine, // callback function
LPVOID lpData, // callback parameter
LPBOOL pbCancel, // cancel status
DWORD dwCopyFlags // copy options
);
DWORD CALLBACK CopyProgressRoutine(
LARGE_INTEGER TotalFileSize, // file size
LARGE_INTEGER TotalBytesTransferred, // bytes transferred
LARGE_INTEGER StreamSize, // bytes in stream
LARGE_INTEGER StreamBytesTransferred, // bytes transferred for stream
DWORD dwStreamNumber, // current stream
DWORD dwCallbackReason, // callback reason
HANDLE hSourceFile, // handle to source file
HANDLE hDestinationFile, // handle to destination file
LPVOID lpData // from CopyFileEx
);
比如
DWORD CALLBACK MyCopyProgressRoutine(LARGE_INTEGER TotalFileSize, // file size
LARGE_INTEGER TotalBytesTransferred, // bytes transferred
LARGE_INTEGER StreamSize, // bytes in stream
LARGE_INTEGER StreamBytesTransferred, // bytes transferred for stream
DWORD dwStreamNumber, // current stream
DWORD dwCallbackReason, // callback reason
HANDLE hSourceFile, // handle to source file
HANDLE hDestinationFile, // handle to destination file
LPVOID lpData // from CopyFileEx
)
{
CDialogTest* ptr = (CDialogTest*)lpData;
// do something with pointer, e.g. ptr->m_Progressbar.Pos blahblah
DWORD percent = TotalBytesTransferred*100/TotalFileSize;
return TRUE;
}
BOOL CDialogTest::Copy(CString from, CString to)
{
BOOL cancel;
return CopyFileEx( from, to, (LPPROGRESS_ROUTINE)MyCopyProgressRoutine, (this)this, &cancel, FALSE);
}
idAnts
2005-07-06
打赏
举报
回复
CProgressCtrl m_progress;
先得到文件总数n,然后m_progress.SetRange(0,n);
m_progress.SetStep(1);
m_progress.SetPos(0);
然后创建线程复制文件,每复制一个,给主窗口发个自定义消息WM_COPYED,收到消息后:
m_progress.StepIt();
FileCopy
进度
条
文件复制用
进度
条动态显示
拷贝
进度
,C
Progress
Ctrl
C
Progress
Ctrl
控件 VC++
(一)
进度
条的主要功能
进度
条控制(
Progress
Control)主要用来进行数据读写、文件
拷贝
和磁盘格式等操作时的工作
进度
提示情况,如安装程序等,伴随工作
进度
的进展,
进度
条的矩形区域从左到右利用当前活动窗口标题条的颜色来不断填充。
进度
条控制在MFC类库中的封装类为C
Progress
Ctrl
,通常仅作为输出类控制,所以其操作主要是设置
进度
条的范围和当前位置,并不断地更新当
MfC
进度
条控件
1.
进度
条 主要用来进行数据读写、文件
拷贝
和磁盘格式等操作时的工作
进度
提示情况,如安装程序等,伴随工作
进度
的进展,
进度
条的矩形区域从左到右利用当前活动窗体标题条的颜色来不断填充。 2.
进度
条控制在MFC类库中的封装类为C
Progress
Ctrl
,通常仅作为输出类控制,所以其操作主要是设置
进度
条的范围和当前位置,并不断地更新当前位置。
进度
条的范围用来表示整个操作过程的时...
MFC
进度
条编程控制-----总结的挺好
1.
进度
条的主要功能
进度
条控制(
Progress
Control)主要用来进行数据读写、文件
拷贝
和磁盘格式等操作时的工作
进度
提示情况,如安装程序等,伴随工作
进度
的进展,
进度
条的矩形区域从左到右利用当前活动窗口标题条的颜色来不断填充。
进度
条控制在MFC类库中的封装类为C
Progress
Ctrl
,通常仅作为输出类控制,所以其操作主要是设置
进度
条的范围和当前位置,并不断地更新当前位置。
进度
条的
MFC
进度
条编程控制
1.
进度
条的主要功能
进度
条控制(
Progress
Control)主要用来进行数据读写、文件
拷贝
和磁盘格式等操作时的工作
进度
提示情况,如安装程序等,伴随工作
进度
的进展,
进度
条的矩形区域从左到右利用当前活动窗口标题条的颜色来不断填充。
进度
条控制在MFC类库中的封装类为C
Progress
Ctrl
,通常仅作为输出类控制,所以其操作主要是设置
进度
条的范围和当前位置,并不断地更新当前位置。
进度
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章