社区
进程/线程/DLL
帖子详情
怎样使用CProgressCtrl显示文件拷贝的进度?
counteagler
2005-07-06 03:09:38
CopyFile从硬盘向U盘拷文件,想用CProgressCtrl显示拷贝的进度,请达人赐教,最好有代码。
...全文
616
2
打赏
收藏
怎样使用CProgressCtrl显示文件拷贝的进度?
CopyFile从硬盘向U盘拷文件,想用CProgressCtrl显示拷贝的进度,请达人赐教,最好有代码。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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();
MFC编写文件
拷贝
并有
进度
条显示
进度
本文将详细介绍如何
使用
MFC实现这一功能,包括文件
拷贝
的基本原理、
进度
条的
使用
以及如何同步更新
进度
。 首先,我们需要理解文件
拷贝
的基本过程。在Windows操作系统中,可以
使用
API函数`CopyFile`或`CopyFileEx`来...
VS2010实现文件
拷贝
并显示
进度
条
在本文中,我们将深入探讨如何
使用
Visual Studio 2010来实现文件
拷贝
功能,并在
拷贝
过程中显示一个
进度
条以提供用户友好的界面体验。这个实现主要涉及MFC(Microsoft Foundation Classes)库,以及Windows API中的...
文件
拷贝
程序MFC
【文件
拷贝
程序MFC】是...通过以上知识点的结合,你可以在VC++6.0和MFC环境下开发出一个能够显示
拷贝
进度
的文件
拷贝
程序。这个程序不仅可以提供基础的文件复制功能,还能提升用户体验,让用户了解文件
拷贝
的实时
进度
。
VC++ 动画模拟Windows的
拷贝
进程
这个项目不仅涉及到动画的创建,还包括
进度
条控件的
使用
,以实时显示
拷贝
进度
,为用户提供更直观的交互体验。 首先,让我们了解VC++(Visual C++)的基本概念。VC++是微软开发的一款强大的集成开发环境,主要用于...
mfc复制文件显示
进度
在MFC(Microsoft Foundation Classes)框架中开发一个能够
显示文件
复制
进度
、支持暂停、取消、加速和减速功能的对话框应用程序是一项技术性较强的任务。这个应用程序通常涉及到多线程编程、事件处理、用户界面更新...
进程/线程/DLL
15,473
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章