📄 dlgsendctrl.cpp
字号:
{
my->pnum--;
}
my=my->next;
}
if((my->pnum)<getdat)
{
buf=my;
my=my->next;
}
else if((my->pnum)==getdat)
{
buf->next=NULL;
// free(my);
}
else
{
my->pnum--;
my->next=NULL;
}
//free(buf1);
}
updatalist();
}
}
void CDlgsendctrl::updatalist()
{
unsigned short pnum;
m_list.DeleteAllItems();
if(head==NULL)
{
// head=add;
}
else
{
my=head;
CString str;
// str=my->der_path;
// m_destpath.SetWindowText(str);
pnum=my->pnum;
str.Format("%u",pnum);
int item=m_list.InsertItem(pnum,str);
m_list.SetItemData(item,pnum);
str=my->start_timer;
m_list.SetItemText(item,2,str);
str=my->finish_timer;
m_list.SetItemText(item,3,str);
str=my->sour_path;
m_list.SetItemText(item,4,str);
str=changsize(my->fil_len);
m_list.SetItemText(item,5,str);
str=my->der_path;
m_list.SetItemText(item,6,str);
if(my->send_mode==overwrite)
{
m_list.SetItemText(item,7,"yes");
}
else
{
m_list.SetItemText(item,7,"no");
}
unsigned char sta=my->sta;
if(sta==send_ok)
{
str="发送完成";
m_list.SetItemText(item,1,str);
}
else if(sta==send_fail)
{
str="无法发送";
m_list.SetItemText(item,1,str);
}
else if(sta==breaked)
{
str="发送中断";
m_list.SetItemText(item,1,str);
}
else if(sta==stop)
{
str="发送暂停";
m_list.SetItemText(item,1,str);
}
else if(sta==sending)
{
str="发送中";
m_list.SetItemText(item,1,str);
}
else if(sta==to_be_send)
{
str="等待发送";
m_list.SetItemText(item,1,str);
}
else if(sta==fileon)
{
str="文件已存在";
m_list.SetItemText(item,1,str);
}
else if(sta==noip)
{
str="已断开";
m_list.SetItemText(item,1,str);
}
else if(sta==read_file_fail)
{
str="读文件错误";
m_list.SetItemText(item,1,str);
}
while(my->next!=NULL)
{
my=my->next;
pnum=my->pnum;
str.Format("%u",pnum);
int item=m_list.InsertItem(pnum,str);
m_list.SetItemData(item,pnum);
str=my->start_timer;
m_list.SetItemText(item,2,str);
str=my->finish_timer;
m_list.SetItemText(item,3,str);
str=my->sour_path;
m_list.SetItemText(item,4,str);
str=changsize(my->fil_len);
m_list.SetItemText(item,5,str);
str=my->der_path;
m_list.SetItemText(item,6,str);
if(my->send_mode==overwrite)
{
m_list.SetItemText(item,7,"yes");
}
else
{
m_list.SetItemText(item,7,"no");
}
unsigned char sta=my->sta;
if(sta==send_ok)
{
str="发送完成";
m_list.SetItemText(item,1,str);
}
else if(sta==send_fail)
{
str="无法发送";
m_list.SetItemText(item,1,str);
}
else if(sta==breaked)
{
str="发送中断";
m_list.SetItemText(item,1,str);
}
else if(sta==stop)
{
str="发送暂停";
m_list.SetItemText(item,1,str);
}
else if(sta==sending)
{
str="发送中";
m_list.SetItemText(item,1,str);
}
else if(sta==to_be_send)
{
str="等待发送";
m_list.SetItemText(item,1,str);
}
else if(sta==fileon)
{
str="文件已存在";
m_list.SetItemText(item,1,str);
}
else if(sta==noip)
{
str="已断开";
m_list.SetItemText(item,1,str);
}
else if(sta==read_file_fail)
{
str="读文件错误";
m_list.SetItemText(item,1,str);
}
}
}
}
void CDlgsendctrl::OnButton6() //清空
{
// TODO: Add your control notification handler code here
if(head!=NULL)
{
struct send_stru *buf1;
my=head;
while(my->next!=NULL)
{
buf1=my;
my=my->next;
free(buf1);
}
if(my!=NULL)
{
free(my);
}
my->next=NULL;
my=NULL;
head=NULL;
updatalist();
}
}
void CDlgsendctrl::OnDlg22add()
{
// TODO: Add your command handler code here
OnButton1();
}
void CDlgsendctrl::OnDlg22att()
{
// TODO: Add your command handler code here
CDlgsendatt dlg;
int getitem=m_list.GetSelectionMark();
unsigned short getdat=(unsigned short)m_list.GetItemData(getitem);
if(getdat)
{
my=head;
if((my->pnum)==getdat)
{
if(my->send_mode==overwrite)
{
dlg.m_writemode="覆盖";
}
else
{
dlg.m_writemode="不覆盖";
}
CString str;
str.Format("%u",my->pnum);
dlg.m_readaddr=my->sour_path;
dlg.m_writeaddr=my->der_path;
dlg.m_seri=str;
dlg.m_startimer=my->start_timer;
dlg.m_sendtimer=my->finish_timer;
str=my->sour_path;
CFile fil;
fil.Open(str,CFile::modeRead);
dlg.m_size=changsize(fil.GetLength());
//dlg.m_spee=my->
//my->send_mode=overwrite;
}
else
{
while(my->next!=NULL)
{
my=my->next;
if((my->pnum)==getdat)
{
//my->send_mode=overwrite;
if(my->send_mode==overwrite)
{
dlg.m_writemode="覆盖";
}
else
{
dlg.m_writemode="不覆盖";
}
CString str;
str.Format("%u",my->pnum);
dlg.m_readaddr=my->sour_path;
dlg.m_writeaddr=my->der_path;
dlg.m_seri=str;
dlg.m_startimer=my->start_timer;
dlg.m_sendtimer=my->finish_timer;
str=my->sour_path;
CFile fil;
fil.Open(str,CFile::modeRead);
dlg.m_size=changsize(fil.GetLength());
}
}
}
dlg.DoModal();
}
}
void CDlgsendctrl::OnDlg22clear()
{
// TODO: Add your command handler code here
OnButton6();
}
void CDlgsendctrl::OnDlg22dle()
{
// TODO: Add your command handler code here
OnButton5();
}
void CDlgsendctrl::OnDlg22down()
{
// TODO: Add your command handler code here
OnButton4();
}
void CDlgsendctrl::OnDlg22inser()
{
// TODO: Add your command handler code here
OnButton2();
}
void CDlgsendctrl::OnDlg22up()
{
// TODO: Add your command handler code here
OnButton3();
}
void CDlgsendctrl::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
CPoint point;
GetCursorPos(&point); ///获得当前鼠标的坐标
CPoint PinT=point;
m_list.ScreenToClient(&PinT);
// HTREEITEM getitem;///定一个用来存放当前项的句柄
UINT nFlag=TVHT_ONITEM; ///在一个项目上点击鼠标右键时
int getitem=m_list.HitTest(PinT,&nFlag);
//int getitem=m_listtable.GetSelectionMark();
PopMenu.DestroyMenu();
//PopMenu.LoadMenu(IDR_MENU5);
if(getitem==-1)//不选中
{
// PopMenu.LoadMenu(IDR_MENU5);
// PopMenu.GetSubMenu(0)->EnableMenuItem(IDC_POPMENU5DEL, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
// PopMenu.GetSubMenu(0)->EnableMenuItem(IDC_POPMENU5UP, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
// PopMenu.GetSubMenu(0)->EnableMenuItem(IDC_POPMENU5DOWN, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
// PopMenu.GetSubMenu(0)->EnableMenuItem(IDC_POPMENU5ATT, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
// PopMenu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
}
else
{
}
PopMenu.LoadMenu(IDR_MENU7);
PopMenu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
*pResult = 0;
}
void CDlgsendctrl::OnResend()
{
// TODO: Add your command handler code here
int getitem=m_list.GetSelectionMark();
unsigned short getdat=(unsigned short)m_list.GetItemData(getitem);
if(getdat)
{
my=head;
if((my->pnum)==getdat)
{
my->sta=to_be_send;
}
else
{
while(my->next!=NULL)
{
my=my->next;
if((my->pnum)==getdat)
{
my->sta=to_be_send;
}
}
}
}
updatalist();
}
void CDlgsendctrl::OnMenuitem32825()
{
// TODO: Add your command handler code here
int getitem=m_list.GetSelectionMark();
unsigned short getdat=(unsigned short)m_list.GetItemData(getitem);
if(getdat)
{
my=head;
if((my->pnum)==getdat)
{
my->send_mode=overwrite;
}
else
{
while(my->next!=NULL)
{
my=my->next;
if((my->pnum)==getdat)
{
my->send_mode=overwrite;
}
}
}
}
updatalist();
}
CString CDlgsendctrl::changsize(unsigned __int64 size)
{
CString strsize,str;
unsigned __int64 dvi;
unsigned __int64 dec,she;
dec=1024*1024*1024;
// unsigned long size=(unsigned long)ssize;
if(size>dec)
{
dvi=size/dec;
she=size%dec;
she=she/(1024*1024);
strsize.Format("%u",dvi);
str.Format("%u",she);
return strsize+'.'+str+" G";
}
else if(size>(1024*1024))
{
dvi=size/(1024*1024);
she=size%(1024*1024);
she=she/1024;
strsize.Format("%u",dvi);
str.Format("%u",she);
return strsize+'.'+str+" M";
}
else if(size>1024)
{
dvi=size/1024;
she=size%1024;
// she=she/1024;
strsize.Format("%u",dvi);
str.Format("%u",she);
return strsize+'.'+str+" K";
}
else
{
str.Format("%u",size);
return str+" Byte";
}
}
/*
void CDlgsendctrl::OnCheck2()
{
// TODO: Add your control notification handler code here
if(m_stop.GetCheck())
{
//::AfxMessageBox("slect");
bit_stop_threa=1;
}
else
{
bit_stop_threa=0;
}
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -