WEB开发网
开发学院软件开发VC 实现操作过程提示对话框 阅读

实现操作过程提示对话框

 2010-07-11 20:43:36 来源:WEB开发网   
核心提示:至此,您已经拥有了自己的过程操作提示对话框,实现操作过程提示对话框(2),不过,它还不具有动画和随时取消操作的功能,以便根据需要变换目录if (lpBuffer!=BatPath) //diferent dirSetCurrentDirectory(BatPath);CStdioFile f;CFileExceptio

至此,您已经拥有了自己的过程操作提示对话框。不过,它还不具有动画和随时取消操作的功能。您不妨尝试着加入这些功能。另外,笔者也曾尝试过用下面介绍的方法实现过程操作提示对话框。两种方法比较,可谓各有千秋。如果您希望上面设计的过程提示对话框能够被多个应用程序共享,那么最好把提示对话框作为独立的进程来调用。但是,当您还希望在提示对话框与调用者之间传输数据的话,似乎这一部分介绍的实现方法更简洁且更有效。应用进程实现对其他应用程序的调用

在我们设计的应用程序中,很可能会用到其他应用程序来完成某一特定功能。例如,当我们为了便于数据的传输而对诸多文件进行压缩和解压缩时,一种作法是我们自己设计一个这样的压缩/ 解压缩程序,然后以动态链接库(DLL) 或者函数库的形式由主应用程序调用。但更方便而且高效的作法是利用现有的这方面的优秀软件,比如ARJ.EXE,并以进程的形式调用它,再在适当时候关闭它。下面将以上面所述为例,具体介绍后一种方法的实现过程。

在需要调用ARJ.EXE 进行压缩/ 解压缩的类中,创建一个成员函数,不妨称作CreateBat(),其作用是生成一个批处理文件。由该批处理文件调用ARJ.EXE,并给出具体压缩/ 解压缩参数。之后,再利用MS-DOS 的DIR 命令生成一个临时文件,以作为压缩/ 解压缩工作完成的标志。

void CMyCompress:: CreateBat(CString BatPath,CString ArjPath,
CString BatName,CString ArjFileName,
CString TempPath,CString ExitFlag,BOOL out)
{
LPTSTR lpBuffer;
UINT uSize;
HANDLE hHeap;
uSize=(GetCurrentDirectory(0,NULL))*sizeof(TCHAR);
hHeap=GetProcessHeap();
lpBuffer=(LPSTR)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,uSize);
GetCurrentDirectory(uSize,lpBuffer);
//得知当前目录信息,以便根据需要变换目录
if (lpBuffer!=BatPath) //diferent dir
SetCurrentDirectory(BatPath);
CStdioFile f;
CFileException e;
if (!f.Open( BatName, CFile::modeCreate|CFile::modeWrite, &e))
//以BatName的内容创建一个批处理文件
{
AfxMessageBox("不能创建文件"+BatName);
return ;
}
char density[6];
sprintf(density,"%d",mTotalBytes);

//mTotalBytes 是由其他函数设定的变量,用于记录用于拷入或拷出文件的磁盘所具有的最大可用空间

CString Density=density;
CString string;
if (out)//说明是生成做压缩工作的批处理文件
string="arj a -v"+Density;
else //说明是生成做解压缩工作的批处理文件
string="arj e -v"+Density;
string+=" .."+ArjPath+""+ArjFileName+" ";
if (out)
string=string+".."+TempPath+"*.* -y -jmn";
else
string=string+".."+TempPath+" -y -jmn";
f.WriteString(string);
string="dir >"+ExitFlag+"n";
f.WriteString(string);
f.Close();
SetCurrentDirectory(lpBuffer);//回复到原来的目录下
}

该函数执行后,将生成一个批处理文件,内容大致是:

ARJ A -V1440 压缩后文件的路径名+ 文件名被压缩文件的路径名+ 文件名

-Y -JM

DIR > 临时文件名

或者是:

ARJ E -V1440 被解压缩文件的路径名+ 文件名解压缩后文件的路径名+ 文件名-Y -JM

DIR > 临时文件名

上一页  1 2 3 4 5  下一页

Tags:实现 操作 过程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接