PlotterHMI/machine/bmp/creatprintbmp.cpp

664 lines
19 KiB
C++
Raw Normal View History

2024-02-06 06:19:53 +00:00
#include "creatprintbmp.h"
CreatPrintBmp::CreatPrintBmp(QObject *parent) : QObject(parent)
{
m_savePath.clear();
m_workState = WORK_PAUSE;
2024-02-06 06:19:53 +00:00
m_fileBegIdx = -1;
m_fileEndIdx = -1;
m_deleteFileIdx = -1;
m_listFileIdx = -1;//当前生成数据的文件索引
2024-02-06 06:19:53 +00:00
m_curBmpBlockIdx = -1;//当前生成数据的位图块数索引
m_mcPrintInfo = NULL;
m_conpressDir = 1;
m_printFileDir.clear();
m_moveFileIdx = -1;//上下移动打印文件索引
m_moveDir = 0;//-1,上移 1下移
m_rotateAngle = 0;
m_autoDirFilesList.clear();
2024-02-06 06:19:53 +00:00
}
CreatPrintBmp::~CreatPrintBmp()
{
if(m_mcPrintInfo != NULL)
{
m_mcPrintInfo->clear();
delete m_mcPrintInfo;
}
}
int CreatPrintBmp::creatFileListMarker(int idx)
2024-02-06 06:19:53 +00:00
{
if(m_workState == WORK_PAUSE)
2024-02-06 06:19:53 +00:00
{
return -1;
2024-02-06 06:19:53 +00:00
}
if(m_mcPrintInfo->m_loadFileFinishFlag < 0)
2024-02-06 06:19:53 +00:00
{
if(idx >= m_autoDirFilesList.size())
2024-02-06 06:19:53 +00:00
{
return -1;
2024-02-06 06:19:53 +00:00
}
QFileInfo fileInfo(m_autoDirFilesList[idx]);
QString filePath = fileInfo.filePath();
2024-02-06 06:19:53 +00:00
int creatDataFlag = 0;//是否已经生成Marker数据的标志
if(idx < m_mcPrintInfo->m_filesList.size())
2024-02-06 06:19:53 +00:00
{
if(m_mcPrintInfo->m_filesList[idx].m_creatDataFlag != 0)
2024-02-06 06:19:53 +00:00
{
creatDataFlag = 1;
2024-02-06 06:19:53 +00:00
}
}
//已经生成数据的跳过
if(creatDataFlag == 0)
{
McFilesInfo curFilesInfo;//当前文件信息
creatMarkerDat(curFilesInfo,m_printFileDir,filePath,m_listFileIdx,m_rotateAngle);
long long fileTotalLength = (curFilesInfo.m_fileRect.right() - curFilesInfo.m_fileRect.left())/M_IDPMM;
m_mcPrintInfo->m_fileNums += 1;
m_mcPrintInfo->m_fileTotalLength += fileTotalLength;
m_mcPrintInfo->m_filesList.append(curFilesInfo);
2024-02-06 06:19:53 +00:00
}
}
if(m_mcPrintInfo->m_loadFileFinishFlag < 0)
2024-02-06 06:19:53 +00:00
{
//全部文件Marker数据加载完成
if(m_mcPrintInfo->m_filesList.size() == m_autoDirFilesList.size())
{
m_mcPrintInfo->m_loadFileFinishFlag = 1;
}
2024-02-06 06:19:53 +00:00
}
return 0;
2024-02-06 06:19:53 +00:00
}
int CreatPrintBmp::creatFileListDatAndSend(int idx)
{
if(idx >= m_mcPrintInfo->m_filesList.size())
{
return -1;
2024-02-06 06:19:53 +00:00
}
McFilesInfo curFilesInfo;
if(m_workState == WORK_PAUSE)
{
return -1;
}
curFilesInfo = m_mcPrintInfo->m_filesList[idx];
QString filePath = m_printFileDir + QString::number(m_listFileIdx+1);
2024-02-06 06:19:53 +00:00
QDir fileDir(filePath);//对应每台机器的每个文件打印目录
if(!fileDir.exists())
{
fileDir.mkdir(filePath);
}
filePath = filePath + fileDir.separator();
if(curFilesInfo.m_creatDataFlag < 0)
{
creatMarkerDat(curFilesInfo,m_printFileDir,m_mcPrintInfo->m_filesList[idx].m_filePath,m_listFileIdx,m_rotateAngle);
2024-02-06 06:19:53 +00:00
m_mcPrintInfo->m_filesList[idx] = curFilesInfo;
}
QPicture pic;
QPen pen;
pen.setWidth(1);
pen.setColor(QColor(Qt::black));
int oft = 0;//起始打印位置的偏移
if(curFilesInfo.m_fileType == TYPE_FILE)
{
pic = m_mcPrintInfo->m_filesList[idx].m_pic;
2024-02-06 06:19:53 +00:00
oft = (int)(m_mcPrintInfo->m_filesList[idx].m_startPoint*MMPIXELY);
//将picture保存为多个宽度为PIXMAPWIDTH像素的bmp
m_mcPrintInfo->m_totalNums = (pic.width() - oft) / PIXMAPWIDTH;
int lwidth = (pic.width() - oft) % (PIXMAPWIDTH);
if(lwidth != 0)
{
m_mcPrintInfo->m_totalNums += 1;
}
}
else if(curFilesInfo.m_fileType == TYPE_IMAGE)
{
//将图片画在picture上
QPainter painter;
painter.begin(&pic);
painter.setPen(pen);
painter.drawPixmap(0,0,m_mcPrintInfo->m_filesList[idx].m_pixmap);
painter.end();
//将pixmap保存为多个宽度为PIXMAPWIDTH像素的bmp
m_mcPrintInfo->m_totalNums = curFilesInfo.m_pixmap.width() / PIXMAPWIDTH;
int lwidth = curFilesInfo.m_pixmap.width() % PIXMAPWIDTH;
if(lwidth != 0)
{
m_mcPrintInfo->m_totalNums += 1;
}
}
m_mcPrintInfo->m_filesList[idx].m_totalBlocks = (pic.width() - oft)/ PIXMAPWIDTH;
int lwidth = (pic.width() - oft) % PIXMAPWIDTH;
if(lwidth != 0)
{
m_mcPrintInfo->m_filesList[idx].m_totalBlocks += 1;
}
m_mcPrintInfo->m_filesList[idx].m_totalBlocks *= m_mcPrintInfo->m_filesList[idx].m_printNum;
m_mcPrintInfo->m_filesList[idx].m_printState = Printting;
2024-02-06 06:19:53 +00:00
//发送文件列表数据
emit siSendFileListDatToMc(idx);
return 0;
}
int CreatPrintBmp::creatBmpBlockDatAndSend(int fileidx, int idx)
2024-02-06 06:19:53 +00:00
{
if(m_workState == WORK_PAUSE)
{
return -1;
}
2024-02-06 06:19:53 +00:00
QPen pen;
pen.setWidth(1);
pen.setColor(QColor(Qt::black));
if(m_mcPrintInfo->m_filesList[fileidx].m_printNum <= 0)
2024-02-06 06:19:53 +00:00
{
m_mcPrintInfo->m_filesList[fileidx].m_printNum = 1;
2024-02-06 06:19:53 +00:00
}
int oneNumCount = m_mcPrintInfo->m_filesList[fileidx].m_totalBlocks / m_mcPrintInfo->m_filesList[fileidx].m_printNum;
int nextNum = idx / oneNumCount;
idx = idx - nextNum * oneNumCount;
2024-02-06 06:19:53 +00:00
QPicture pic = m_mcPrintInfo->m_filesList[fileidx].m_pic;
int oft = (int)(m_mcPrintInfo->m_filesList[fileidx].m_startPoint*MMPIXELY);
2024-02-06 06:19:53 +00:00
//将picture保存为多个宽度为PIXMAPWIDTH像素的bmp
int num = (pic.width() - oft) / PIXMAPWIDTH;
int lwidth = (pic.width() - oft) % PIXMAPWIDTH;
int height = pic.height();
int offset = 0 - idx * PIXMAPWIDTH - oft;//将picture画在bmp上每次的偏移量bmp的最大尺寸为u16
2024-02-06 06:19:53 +00:00
if(lwidth != 0)
{
num += 1;
}
QBitmap *pixmap = new QBitmap(PIXMAPWIDTH,height);
QPainter *pixPainter = new QPainter();
pixPainter->begin(pixmap);
pixPainter->setPen(pen);
QString filePath = m_printFileDir + QString::number(m_listFileIdx+1);
2024-02-06 06:19:53 +00:00
QDir fileDir(filePath);//对应每台机器的每个文件打印目录
if(!fileDir.exists())
{
fileDir.mkdir(filePath);
}
filePath = filePath + fileDir.separator();
pixmap->fill(Qt::white);//用白色填充
pixPainter->drawPicture(offset,0,pic);
int cidx = idx + nextNum*oneNumCount;
QString path = filePath+QString::number(cidx+1)+".bmp";
2024-02-06 06:19:53 +00:00
bool bls = pixmap->save(path);
while(bls == false)
{
bls = pixmap->save(path);
qDebug()<<"pixmap save failed";
}
//压缩位图
BWBmp bwBmp;
int rslt;
rslt = bwBmp.LoadBiBmp(path);
if (rslt != 0)
{
qDebug() << "open file error" << path;
return -1;
}
rslt = bwBmp.Compress(cidx,m_conpressDir);
2024-02-06 06:19:53 +00:00
if (rslt != 0)
{
qDebug() << "Compress error";
return -1;
}
rslt = bwBmp.SavePrBmp(path+".prbmp");
if (rslt != 0)
{
qDebug() << "save prbmp error";
return -1;
}
QByteArray dat = bwBmp.getPrBmpDat();
emit siSendDatToMc(dat);
m_mcPrintInfo->m_filesList[fileidx].m_curPrintBlock = cidx + 1;
m_mcPrintInfo->m_filesList[fileidx].m_printedBlockNum = cidx;
m_mcPrintInfo->m_filesList[fileidx].m_leaveBlockNum = m_mcPrintInfo->m_filesList[fileidx].m_totalBlocks - m_mcPrintInfo->m_filesList[fileidx].m_printedBlockNum;
2024-02-06 06:19:53 +00:00
//计算机器打印进度
int fileNum = m_fileEndIdx - m_fileBegIdx;
int val = 1;
if(fileNum == 1)//每次只发送一个文件
2024-02-06 06:19:53 +00:00
{
val = 0;
2024-02-06 06:19:53 +00:00
}
double filePro = (1.0 / (double)fileNum)*m_listFileIdx*val;//发送到第m_listFileIdx个文件的进度
double blockPro = (double)m_mcPrintInfo->m_filesList[fileidx].m_printedBlockNum / (double)m_mcPrintInfo->m_filesList[fileidx].m_totalBlocks;//发送到第idx个块的进度
double fBlockPro = (1.0 / (double)fileNum) * blockPro;//发送到第idx个块的进度
double totalPro = filePro + fBlockPro;//发送到第m_listFileIdx个文件的第idx个块的进度
m_mcPrintInfo->m_mcSendProgress = totalPro*100.0;
//单个文件打印完成
if(m_mcPrintInfo->m_filesList[fileidx].m_printedBlockNum == m_mcPrintInfo->m_filesList[fileidx].m_totalBlocks)
2024-02-06 06:19:53 +00:00
{
m_mcPrintInfo->m_filesList[m_fileBegIdx].m_printState = Complete;
2024-02-06 06:19:53 +00:00
}
emit siRefreshPrintProgress(m_mcPrintInfo->m_mcNum,m_fileBegIdx);
2024-02-06 06:19:53 +00:00
m_mcPrintInfo->m_sendedlNums++;
pixPainter->end();
bool bla = pixPainter->isActive();
while(bla == true)
{
bla = pixPainter->isActive();
qDebug()<<"pixPainter isActive";
}
delete pixmap;
delete pixPainter;
return 0;
}
void CreatPrintBmp::slotCreatBmp()
{
#if(1)
m_curBmpBlockIdx = -1;//当前生成数据的位图块数索引
int val = creatFileListMarker(m_fileBegIdx);
2024-02-06 06:19:53 +00:00
if(val < 0)
{
return;
}
val = creatFileListDatAndSend(m_fileBegIdx);
2024-02-06 06:19:53 +00:00
if(val < 0)
{
return;
}
#else
QPen pen;
pen.setWidth(1);
pen.setColor(QColor(Qt::black));
//将picture保存为多个宽度为PIXMAPWIDTH像素的bmp
int num = m_picture.width() / PIXMAPWIDTH;
int lwidth = m_picture.width() % PIXMAPWIDTH;
int height = m_picture.height();
int offset = 0;
if(lwidth != 0)
{
num += 1;
}
QBitmap *pixmap = new QBitmap(PIXMAPWIDTH,height);
QPainter *pixPainter = new QPainter();
pixPainter->begin(pixmap);
pixPainter->setPen(pen);
for(int i = 0 ; i < num; i++)
{
pixmap->fill(Qt::white);//用白色填充
pixPainter->drawPicture(offset,0,m_picture);
offset -= PIXMAPWIDTH;
QString path = m_savePath+QString::number(i+1)+".bmp";
bool bls = pixmap->save(path);
while(bls == false)
{
bls = pixmap->save(path);
qDebug()<<"pixmap save failed";
}
//压缩位图
BWBmp bwBmp;
int rslt;
rslt = bwBmp.LoadBiBmp(path);
if (rslt != 0)
{
qDebug() << "open file error" << path;
break;
}
rslt = bwBmp.Compress();
if (rslt != 0)
{
qDebug() << "Compress error";
break;
}
rslt = bwBmp.SavePrBmp(path+".prbmp");
if (rslt != 0)
{
qDebug() << "save prbmp error";
break;
}
QByteArray dat = bwBmp.getPrBmpDat();
siCreatOneBmpFinished((unsigned char*)dat.data(),dat.size());
}
pixPainter->end();
bool bla = pixPainter->isActive();
while(bla == true)
{
bla = pixPainter->isActive();
qDebug()<<"pixPainter isActive";
}
delete pixmap;
delete pixPainter;
#endif
}
void CreatPrintBmp::slotCreatNextBmpBlockDat()
{
if(m_mcPrintInfo->m_filesList.size() <= m_fileBegIdx)
2024-02-06 06:19:53 +00:00
{
return;
}
m_mcPrintInfo->m_mcWorkState = Busying;
m_curBmpBlockIdx++;//一个文件可分为若干个位图块,位图块索引++
if(m_curBmpBlockIdx < 0)
{
m_curBmpBlockIdx = 0;
}
if(m_curBmpBlockIdx >= m_mcPrintInfo->m_filesList[m_fileBegIdx].m_totalBlocks)
{
m_listFileIdx++;//文件索引++
int flag = 0;
if(m_listFileIdx >= m_fileEndIdx)
2024-02-06 06:19:53 +00:00
{
m_mcPrintInfo->m_mcWorkState = NotBusy;//机器完成打印
m_mcPrintInfo->m_filesList[m_fileBegIdx].m_printedBlockNum = m_mcPrintInfo->m_filesList[m_fileBegIdx].m_totalBlocks;
m_mcPrintInfo->m_mcSendProgress = 100.0;
flag = 1;
}
emit siOneFilePrintFinished(m_mcPrintInfo->m_mcNum,m_fileBegIdx,flag);
//如果为自动绘图目录中的文件,删除自动绘图目录文件夹中已打印完成的文件
QString filePath = m_mcPrintInfo->m_filesList[m_fileBegIdx].m_filePath;
QDir apppath(qApp->applicationDirPath());
QString iniName = "MachineNo" + QString::number(m_mcPrintInfo->m_mcNum) + ".ini";
QString iniPath = apppath.path() + apppath.separator() + iniName;
QSettings setting(iniPath, QSettings::IniFormat); //QSettings能记录一些程序中的信息下次再打开时可以读取出来
QFileInfo info(filePath);
QString autoFilePath = setting.value("AutoPrintDir/fileDir").toString() + apppath.separator() + info.fileName();
QFile file(autoFilePath);
if(file.exists())
{
//文件存在
QFile::remove(autoFilePath);
if(m_fileBegIdx < m_autoDirFilesList.size())
2024-02-06 06:19:53 +00:00
{
m_autoDirFilesList.removeAt(m_fileBegIdx);//删除自动绘图目录文件列表中的文件
2024-02-06 06:19:53 +00:00
}
}
//m_mcPrintInfo->m_filesList.removeAt(m_fileBegIdx);//删除机器文件列表中已打印完成的文件
#if(0)
//删除此文件的位图存储文件夹
QString bmpPath = m_printFileDir + QString::number(m_listFileIdx+1);
QDir bmpDir(bmpPath);//对应每台机器的每个文件打印目录
if(bmpDir.exists())
2024-02-06 06:19:53 +00:00
{
bmpDir.removeRecursively();
2024-02-06 06:19:53 +00:00
}
#endif
2024-02-06 06:19:53 +00:00
if(m_listFileIdx >= m_fileEndIdx)
2024-02-06 06:19:53 +00:00
{
return;
2024-02-06 06:19:53 +00:00
}
// if(flag == 1)
// {
// return;
// }
// creatFileListMarker(m_fileBegIdx);
// creatFileListDatAndSend(m_fileBegIdx);
// m_curBmpBlockIdx = -1;
2024-02-06 06:19:53 +00:00
return;
}
creatBmpBlockDatAndSend(m_fileBegIdx,m_curBmpBlockIdx);
2024-02-06 06:19:53 +00:00
m_conpressDir *= -1;
}
void CreatPrintBmp::setPicture(QPicture pic)
{
m_picture = pic;
}
void CreatPrintBmp::setPicture(QBitmap bitmap)
{
//将图片画在picture上
QPicture pic;
QPen pen;
pen.setWidth(1);//设置笔号
pen.setColor(QColor(Qt::black));
QPainter painter;
painter.begin(&pic);
painter.setPen(pen);
painter.drawPixmap(0,0,bitmap);
painter.end();
m_picture = pic;
}
void CreatPrintBmp::setSavePath(QString path)
{
m_savePath.clear();
m_savePath = path;
}
QString CreatPrintBmp::getSavePath()
{
return m_savePath;
}
void CreatPrintBmp::setMcPrintInfo(int fileIdx, McPrintInfo *printInfo)
{
m_mcPrintInfo = printInfo;
if(fileIdx < 0)
{
m_fileBegIdx = 0;
}
else
{
m_fileBegIdx = fileIdx;
}
//是否自动打印
int autoPrint = 0;
2024-02-06 06:19:53 +00:00
if(autoPrint == 1)
{
m_fileEndIdx = m_mcPrintInfo->m_filesList.size();
}
else
{
m_fileEndIdx = m_fileBegIdx + 1;
}
m_listFileIdx = m_fileBegIdx;
2024-02-06 06:19:53 +00:00
QDir apppath(qApp->applicationDirPath());
QString printPath = apppath.path() + apppath.separator() + PRINTDIR;
QString mcFile = printPath + apppath.separator() + PRINTMCDIR + QString::number(m_mcPrintInfo->m_mcNum);
m_printFileDir = mcFile + apppath.separator() + PRINTFILEDIR;
m_workState = WORK_START;
m_autoDirFilesList.clear();
if(m_mcPrintInfo->m_loadFileFinishFlag < 0)
{
QString iniName = "MachineNo" + QString::number(m_mcPrintInfo->m_mcNum) + ".ini";
QString iniPath = apppath.path() + apppath.separator() + iniName;
QSettings setting(iniPath, QSettings::IniFormat); //QSettings能记录一些程序中的信息下次再打开时可以读取出来
QString dirPath = setting.value("AutoPrintDir/fileDir").toString();
QDir dir(dirPath);
if(dir.exists())
{
QStringList filter;
filter << QString("*.plt") << QString("*.PLT")
<< QString("*.png") << QString("*.PNG")
<< QString("*.bmp") << QString("*.BMP")
<< QString("*.jpg") << QString("*.JPG");
m_autoDirFilesList = dir.entryInfoList(filter, QDir::Files | QDir::NoSymLinks);
}
}
QDir printDir(printPath);//总的打印目录
if(!printDir.exists())
{
printDir.mkdir(printPath);
}
QDir mcDir(mcFile);//对应每台机器打印目录
if(!mcDir.exists())
{
mcDir.mkdir(mcFile);
}
m_curBmpBlockIdx = -1;//当前生成数据的位图块数索引
}
void CreatPrintBmp::stopCreatPrintDat()
{
m_workState = WORK_PAUSE;
2024-02-06 06:19:53 +00:00
}
void CreatPrintBmp::setDeleteFile(McPrintInfo *printInfo, int fileIdx)
2024-02-06 06:19:53 +00:00
{
if(m_mcPrintInfo == NULL)
{
m_mcPrintInfo = printInfo;
}
if(fileIdx == m_fileBegIdx)
2024-02-06 06:19:53 +00:00
{
return;
}
m_deleteFileIdx = fileIdx;
if(m_deleteFileIdx != m_fileBegIdx && m_deleteFileIdx != -1)
2024-02-06 06:19:53 +00:00
{
int length = (m_mcPrintInfo->m_filesList[m_deleteFileIdx].m_fileRect.right() - m_mcPrintInfo->m_filesList[m_deleteFileIdx].m_fileRect.left())/M_IDPMM;
m_mcPrintInfo->m_fileTotalLength -= length;
2024-02-06 06:19:53 +00:00
QString mcFile = m_printFileDir + QString::number(m_deleteFileIdx+1);
QDir fileDir(mcFile);
if(fileDir.exists())
{
//删除位图文件夹
fileDir.removeRecursively();
}
//如果为自动绘图目录中的文件,删除自动绘图目录文件夹中已打印完成的文件
QString filePath = m_mcPrintInfo->m_filesList[m_deleteFileIdx].m_filePath;
QDir apppath(qApp->applicationDirPath());
QString iniName = "MachineNo" + QString::number(m_mcPrintInfo->m_mcNum) + ".ini";
QString iniPath = apppath.path() + apppath.separator() + iniName;
QSettings setting(iniPath, QSettings::IniFormat); //QSettings能记录一些程序中的信息下次再打开时可以读取出来
QString dirPath = setting.value("AutoPrintDir/fileDir").toString();
QDir dir(dirPath);
if(dir.exists(filePath))
{
//文件存在
QFile::remove(filePath);
if(m_deleteFileIdx < m_autoDirFilesList.size())
2024-02-06 06:19:53 +00:00
{
m_autoDirFilesList.removeAt(m_deleteFileIdx);//删除自动绘图目录文件列表中的文件
2024-02-06 06:19:53 +00:00
}
}
m_mcPrintInfo->m_filesList[m_deleteFileIdx].clear();
m_mcPrintInfo->m_filesList.removeAt(m_deleteFileIdx);
2024-02-06 06:19:53 +00:00
m_mcPrintInfo->m_fileNums = m_mcPrintInfo->m_filesList.size();
m_deleteFileIdx = -1;
}
}
void CreatPrintBmp::setMoveFile(McPrintInfo *printInfo, int fileIdx, int dir)
2024-02-06 06:19:53 +00:00
{
if(m_mcPrintInfo == NULL)
{
m_mcPrintInfo = printInfo;
}
if(fileIdx == m_fileBegIdx)
2024-02-06 06:19:53 +00:00
{
return;
}
m_moveFileIdx = fileIdx;//上下移动打印文件索引
m_moveDir = dir;//-1,上移 1下移
//非正在打印的文件,正在发送文件时的上下移操作
if(m_moveFileIdx != m_fileBegIdx && m_moveFileIdx != -1 && m_moveDir != 0)
2024-02-06 06:19:53 +00:00
{
//交换列表
McFilesInfo info = m_mcPrintInfo->m_filesList[fileIdx];
QFileInfo fileInfo;
if(fileIdx < m_autoDirFilesList.size())
{
fileInfo = m_autoDirFilesList[fileIdx];
}
2024-02-06 06:19:53 +00:00
McFilesInfo cInfo;
QFileInfo cFileInfo;
2024-02-06 06:19:53 +00:00
if(dir == -1)
{
cInfo = m_mcPrintInfo->m_filesList[fileIdx-1];
m_mcPrintInfo->m_filesList[fileIdx-1] = info;
cFileInfo = m_autoDirFilesList[fileIdx-1];
m_autoDirFilesList[fileIdx-1] = fileInfo;
2024-02-06 06:19:53 +00:00
}
else
{
cInfo = m_mcPrintInfo->m_filesList[fileIdx+1];
m_mcPrintInfo->m_filesList[fileIdx+1] = info;
if(fileIdx+1 < m_autoDirFilesList.size())
{
cFileInfo = m_autoDirFilesList[fileIdx+1];
m_autoDirFilesList[fileIdx+1] = fileInfo;
}
2024-02-06 06:19:53 +00:00
}
m_mcPrintInfo->m_filesList[fileIdx] = cInfo;
if(fileIdx < m_autoDirFilesList.size())
{
m_autoDirFilesList[fileIdx] = cFileInfo;
}
2024-02-06 06:19:53 +00:00
m_moveFileIdx = -1;//上下移动打印文件索引
m_moveDir = 0;//-1,上移 1下移
}
}