关于进度条
请问大侠 我要读取一个本地文件 因为它比较大 读的时间比较慢 就想用一个进度条
来显示读的速度,就好象拷贝文件时一样.这样用户就可以看见读取进度了.不知道怎么做,望不惜赐教
[解决办法]
設置好ProcessBar的MAX,MIN和STEP,比如min=0,max=100,step=1,計算一下每讀1% 就ProcessBar-> stepit();復位用 ProcessBar-> Posttion=0;
[解决办法]
CopyFileEx (
\\ source dir,
\\ destination dir,
(LPPROGRESS_ROUTINE)CopyProgress,
NULL,
&Cancel,
NULL
);
// ------------------------ 定义一个回调函数
DWORD CALLBACK CopyProgress(
LARGE_INTEGER TotalFileSize, // total file size, in bytes
LARGE_INTEGER TotalBytesTransferred, // total number of bytes transferred
LARGE_INTEGER StreamSize, // total number of bytes for this stream
LARGE_INTEGER StreamBytesTransferred, // total number of bytes transferred for this stream
DWORD dwStreamNumber, // the current stream
DWORD dwCallbackReason, // reason for callback
HANDLE hSourceFile, // handle to the source file
HANDLE hDestinationFile, // handle to the destination file
LPVOID lpData // passed by CopyFileEx
)
{
//printf( "%08X:%08X of %08X:%08X copied.\n ",
//TotalBytesTransferred.HighPart,TotalBytesTransferred.LowPart,TotalFileSize.HighPart,TotalFileSize.LowPart);
Form1-> 你的进度条-> MaxValue = TotalFileSize.LowPart;
Form1-> 你的进度条-> Value = TotalBytesTransferred.LowPart;
return PROGRESS_CONTINUE;
}
// 这样就有一个效果很不错的进度条进行复制文件