📄 bstvdlg.cpp
字号:
m_pRecordset = NULL;
m_pRecordsetSend->Close();
m_pRecordsetSend = NULL;
return CDialog::DestroyWindow();
}
//---Send消息响应------------------------------------------------------------------------------------
void CBSTVDlg::OnSelchangeListsend()
{
int curSelSend = m_AccessListSend.GetCurSel();
_variant_t var,varIndex;
if(curSelSend < 0 )
return;
try
{
// 先将指针移向第一条记录,然后就可以相对第一条记录来随意移动记录指针
m_pRecordsetSend->MoveFirst();
m_pRecordsetSend->Move(long(curSelSend));
m_pRecordsetSend->Update();
UpdateData(false);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
void CBSTVDlg::OnSelchangeListsend2()
{
// TODO: Add your control notification handler code here
int curSelSend = m_AccessListSend2.GetCurSel();
_variant_t var,varIndex;
if(curSelSend < 0 )
return;
try
{
// 先将指针移向第一条记录,然后就可以相对第一条记录来随意移动记录指针
m_pRecordsetSend2->MoveFirst();
m_pRecordsetSend2->Move(long(curSelSend));
m_pRecordsetSend2->Update();
UpdateData(false);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
//---Send消息响应-----------------------------------------------------------------------
void CBSTVDlg::OnSendadd()
{
_variant_t var;
CString strNameSend,strTypeSend,strLocSend;
try
{
if(!m_pRecordset->adoEOF)
{
var = m_pRecordset->GetCollect("节目名称");
if(var.vt != VT_NULL)
strNameSend = (LPCSTR)_bstr_t(var);
var = m_pRecordset->GetCollect("节目类型");
if(var.vt != VT_NULL)
strTypeSend = (LPCSTR)_bstr_t(var);
var = m_pRecordset->GetCollect("位置");
if(var.vt != VT_NULL)
strLocSend = (LPCSTR)_bstr_t(var);
}
m_pRecordsetSend->AddNew();
m_pRecordsetSend->PutCollect("节目名称", _variant_t(strNameSend));
m_pRecordsetSend->PutCollect("节目类型", _variant_t(strTypeSend));
m_pRecordsetSend->PutCollect("位置", _variant_t(strLocSend));
m_pRecordsetSend->Update();
AfxMessageBox("添加成功!");
// 更新显示其库内容
int nCurSel = m_AccessListSend.GetCount();
ListData();
OnReadaccess();
m_AccessListSend.SetCurSel(nCurSel);
// 移动记录指针到新的位置
OnSelchangeListsend();
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
void CBSTVDlg::OnSendadd2()
{
// TODO: Add your control notification handler code here
_variant_t var;
CString strNameSend2,strTypeSend2,strLocSend2;
try
{
if(!m_pRecordset->adoEOF)
{
var = m_pRecordset->GetCollect("节目名称");
if(var.vt != VT_NULL)
strNameSend2 = (LPCSTR)_bstr_t(var);
var = m_pRecordset->GetCollect("节目类型");
if(var.vt != VT_NULL)
strTypeSend2 = (LPCSTR)_bstr_t(var);
var = m_pRecordset->GetCollect("位置");
if(var.vt != VT_NULL)
strLocSend2 = (LPCSTR)_bstr_t(var);
}
m_pRecordsetSend2->AddNew();
m_pRecordsetSend2->PutCollect("节目名称", _variant_t(strNameSend2));
m_pRecordsetSend2->PutCollect("节目类型", _variant_t(strTypeSend2));
m_pRecordsetSend2->PutCollect("位置", _variant_t(strLocSend2));
m_pRecordsetSend2->Update();
AfxMessageBox("添加成功!");
// 更新显示其库内容
int nCurSel = m_AccessListSend2.GetCount();
ListData();
OnReadaccess();
m_AccessListSend2.SetCurSel(nCurSel);
// 移动记录指针到新的位置
OnSelchangeListsend2();
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
//---Send消息响应删除-----------------------------------------------------------------------
void CBSTVDlg::OnSenddelet()
{
if(m_AccessListSend.GetCount() == 0)
return;
else if(m_AccessListSend.GetCurSel() < 0 || m_AccessListSend.GetCurSel() > m_AccessListSend.GetCount())
m_AccessListSend.SetCurSel(0);
try
{
// 删除当前行记录
m_pRecordsetSend->Delete(adAffectCurrent);
m_pRecordsetSend->Update();
// 删除列表中当前值
int nCurSel = m_AccessListSend.GetCurSel();
m_AccessListSend.DeleteString(nCurSel);
if(nCurSel == 0 && (m_AccessListSend.GetCount() != 0))
m_AccessListSend.SetCurSel(nCurSel);
else if(m_AccessListSend.GetCount() != 0)
m_AccessListSend.SetCurSel(nCurSel-1);
// 移动记录指针到新的位置
OnSelchangeListsend();
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
void CBSTVDlg::OnSenddelet2()
{
// TODO: Add your control notification handler code here
if(m_AccessListSend2.GetCount() == 0)
return;
else if(m_AccessListSend2.GetCurSel() < 0 || m_AccessListSend2.GetCurSel() > m_AccessListSend2.GetCount())
m_AccessListSend2.SetCurSel(0);
try
{
// 删除当前行记录
m_pRecordsetSend2->Delete(adAffectCurrent);
m_pRecordsetSend2->Update();
// 删除列表中当前值
int nCurSel = m_AccessListSend2.GetCurSel();
m_AccessListSend2.DeleteString(nCurSel);
if(nCurSel == 0 && (m_AccessListSend2.GetCount() != 0))
m_AccessListSend2.SetCurSel(nCurSel);
else if(m_AccessListSend2.GetCount() != 0)
m_AccessListSend2.SetCurSel(nCurSel-1);
// 移动记录指针到新的位置
OnSelchangeListsend2();
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
//---Send消息响应发送-----------------------------------------------------------------------
void CBSTVDlg::OnSend()
{
_variant_t var;
CString strNameSend,strTypeSend;
nFileCount=m_AccessListSend.GetCount();
//m_ctlBsend.EnableWindow(0);//将“发送”按钮置为不可用(变灰)
GetDlgItem(IDC_SEND)->EnableWindow(FALSE);
GetDlgItem(IDC_SENDDELET)->EnableWindow(FALSE);
m_pRecordsetSend->MoveFirst();
try
{
for(int nNum=0;nNum<nFileCount;nNum++)
{
var = m_pRecordsetSend->GetCollect("节目名称");
if(var.vt != VT_NULL)
strNameSend= (LPCSTR)_bstr_t(var);
var = m_pRecordsetSend->GetCollect("位置");
if(var.vt != VT_NULL)
m_ctsFileaddr= (LPCSTR)_bstr_t(var);
var = m_pRecordsetSend->GetCollect("节目类型");
if(var.vt != VT_NULL)
strTypeSend= (LPCSTR)_bstr_t(var);
FileName[nNum]=(char*)(LPCTSTR) m_ctsFileaddr;
strType[nNum]=(char*)(LPCTSTR) strTypeSend;
strName[nNum]=(char*)(LPCTSTR) strNameSend;
m_pRecordsetSend->MoveNext();
}
bStop=false;
bStop2=false;
HWND hwnd=GetSafeHwnd();//获得一个句柄值
AfxBeginThread(SourceFile,hwnd,THREAD_PRIORITY_NORMAL);
//调用UINT SourceFile(LPVOID param)函数
//向指定目的地(用户所键入的IP地址)发送数据
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
UpdateData(false);
}
void CBSTVDlg::OnSend2()
{
// TODO: Add your control notification handler code here
_variant_t var;
CString strNameSend2,strTypeSend2;
nFileCount2=m_AccessListSend2.GetCount();
//m_ctlBsend.EnableWindow(0);//将“发送”按钮置为不可用(变灰)
GetDlgItem(IDC_SEND2)->EnableWindow(FALSE);
GetDlgItem(IDC_SENDDELET2)->EnableWindow(FALSE);
m_pRecordsetSend2->MoveFirst();
try
{
for(int nNum=0;nNum<nFileCount2;nNum++)
{
var = m_pRecordsetSend2->GetCollect("节目名称");
if(var.vt != VT_NULL)
strNameSend2= (LPCSTR)_bstr_t(var);
var = m_pRecordsetSend2->GetCollect("位置");
if(var.vt != VT_NULL)
m_ctsFileaddr2= (LPCSTR)_bstr_t(var);
var = m_pRecordsetSend2->GetCollect("节目类型");
if(var.vt != VT_NULL)
strTypeSend2= (LPCSTR)_bstr_t(var);
FileName2[nNum]=(char*)(LPCTSTR) m_ctsFileaddr2;
strType2[nNum]=(char*)(LPCTSTR) strTypeSend2;
strName2[nNum]=(char*)(LPCTSTR) strNameSend2;
m_pRecordsetSend2->MoveNext();
}
bStop3=false;
bStop4=false;
HWND hwnd=GetSafeHwnd();//获得一个句柄值
AfxBeginThread(SourceFile2,hwnd,THREAD_PRIORITY_NORMAL);
//调用UINT SourceFile(LPVOID param)函数
//向指定目的地(用户所键入的IP地址)发送数据
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
UpdateData(false);
}
void CBSTVDlg::OnSendSerial(WPARAM wParam,LPARAM lParam)
{
char SerialNum[20];//定义一个长为20的字符数组
sprintf(SerialNum,"%d",m_PacketSerialNum);
//SerialNum中存放“当前传送包(m_PacketSerialNum)”的值
m_ctsFileaddr="【节目\r\n[*"+strNameB+"*]\r\n发送中…】\r\n当前传送包:";
m_ctsFileaddr+=SerialNum;
if(m_PacketSerialNum==0||m_PacketSerialNum==m_PacketTotalNum-1)
{
m_ctsFileaddr="【节目发送结束】";
}
UpdateData(false);
}
void CBSTVDlg::OnSendSerial2(WPARAM wParam,LPARAM lParam)
{
char SerialNum[20];//定义一个长为20的字符数组
sprintf(SerialNum,"%d",m_PacketSerialNum2);
//SerialNum中存放“当前传送包(m_PacketSerialNum)”的值
m_ctsFileaddr2="【节目\r\n[*"+strName2B+"*]\r\n发送中…】\r\n当前传送包:";
m_ctsFileaddr2+=SerialNum;
if(m_PacketSerialNum2==0||m_PacketSerialNum2==m_PacketTotalNum2-1)
{
m_ctsFileaddr2="【节目发送结束】";
}
UpdateData(false);
}
void CBSTVDlg::OnStop()
{
// TODO: Add your control notification handler code here
m_ctsFileaddr="节目已终止发送\r\n要发送,请点击Send按钮";
bStop2=true;
GetDlgItem(IDC_SEND)->EnableWindow(true);
GetDlgItem(IDC_SENDDELET)->EnableWindow(true);
UpdateData(false);
}
void CBSTVDlg::OnStop2()
{
// TODO: Add your control notification handler code here
m_ctsFileaddr2="节目已终止发送\r\n要发送,请点击Send按钮";
bStop4=true;
GetDlgItem(IDC_SEND2)->EnableWindow(true);
GetDlgItem(IDC_SENDDELET2)->EnableWindow(true);
UpdateData(false);
}
void CBSTVDlg::OnReceivePort1()
{
// TODO: Add your control notification handler code here
// m_Recv_Port=7001;
// m_ReceivePort1.EnableWindow(0);
// m_ReceivePort2.EnableWindow(1);
}
void CBSTVDlg::OnReceivePort2()
{
// TODO: Add your control notification handler code here
// m_Recv_Port=7002;
// m_ReceivePort1.EnableWindow(1);
// m_ReceivePort2.EnableWindow(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -