首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

关于进度条解决方法

2012-03-21 
关于进度条请问大侠我要读取一个本地文件因为它比较大读的时间比较慢就想用一个进度条来显示读的速度,就好

关于进度条
请问大侠     我要读取一个本地文件   因为它比较大   读的时间比较慢   就想用一个进度条
来显示读的速度,就好象拷贝文件时一样.这样用户就可以看见读取进度了.不知道怎么做,望不惜赐教

[解决办法]
設置好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;
}

// 这样就有一个效果很不错的进度条进行复制文件

热点排行