我设置了触发不了
//设置等待超时定时器
m_nTimer = SetTimer(1, 5000, NULL);void CServer_TransfersDlg::OnTimer(UINT nIDEvent)
{
switch(nIDEvent)
{
//ID为1的计时器
case 1:
{
//结束ID为1的计时器
KillTimer(1); //告诉对方发送等待被取消
for (int i=0;i<50;i++)
{
if (m_psockClient[i]!=NULL)
{
CMessage* pMsg = new CMessage(CANCEL);
m_psockClient[i]->SendMsg(pMsg); delete pMsg;
}
} MessageBox(_T("等待超时"), _T(" 警告"), MB_ICONEXCLAMATION); break;
}
//ID为2的计时器
case 2:
{
//结束ID为2的计时器
KillTimer(2);
//结束监听
CSocket sockClient;
sockClient.Create();
sockClient.Connect(_T("127.0.0.1"), m_wPort + PORT);
sockClient.Close();
break;
}
} CDialog::OnTimer(nIDEvent);
}
当运行到m_nTimer = SetTimer(1, 5000, NULL);
时应该会触发OnTimer函数把,他怎么就不进去呢?
//设置等待超时定时器
m_nTimer = SetTimer(1, 5000, NULL);void CServer_TransfersDlg::OnTimer(UINT nIDEvent)
{
switch(nIDEvent)
{
//ID为1的计时器
case 1:
{
//结束ID为1的计时器
KillTimer(1); //告诉对方发送等待被取消
for (int i=0;i<50;i++)
{
if (m_psockClient[i]!=NULL)
{
CMessage* pMsg = new CMessage(CANCEL);
m_psockClient[i]->SendMsg(pMsg); delete pMsg;
}
} MessageBox(_T("等待超时"), _T(" 警告"), MB_ICONEXCLAMATION); break;
}
//ID为2的计时器
case 2:
{
//结束ID为2的计时器
KillTimer(2);
//结束监听
CSocket sockClient;
sockClient.Create();
sockClient.Connect(_T("127.0.0.1"), m_wPort + PORT);
sockClient.Close();
break;
}
} CDialog::OnTimer(nIDEvent);
}
当运行到m_nTimer = SetTimer(1, 5000, NULL);
时应该会触发OnTimer函数把,他怎么就不进去呢?
解决方案 »
- CList<CString,CString&> pathlist 做为函数参数
- 关于多线程中操作listctrl控件的方法
- 提供《VC++实效编程百例》下载地址:
- 如何实现XP资源管理器左边那种列表样式?
- CTreeView类,环境菜单问题
- 如何做一个接口的备份
- 请关注!CRectTracker 怪事,请进————
- 如何区分字符串中的汉字和非英文字母?
- visual studio 工具中的error lookup是干什么的?怎么用?
- 关于CHtmlView在Win8下不调用send的疑问
- mysql_query调用mysql存储过程怎么会出错
- 帮忙回3个帖子~~好结帖,都100分的,没人回..谁帮回一帖?分全给了~~
代码运行的时候就是进不到OnTimer里面所以才来问额
{
// TODO: 在此添加控件通知处理程序代码
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "所有文件 (*.*)|*.*||", this);
dlg.m_ofn.lpstrTitle = _T("打开");//设置等待超时定时器
m_nTimer = SetTimer(1, 50000, NULL);
if(dlg.DoModal() == IDOK)
{
m_strPath = dlg.GetPathName();
m_strFileName = dlg.GetFileName();
SetDlgItemText(IDC_EDIT1,m_strPath); //打开文件
CFile file(m_strPath, CFile::modeRead);
//获取文件大小
m_dwFileSize = file.GetLength(); m_strFileSize.Format("%ld 字节", m_dwFileSize);
GetDlgItem(IDC_FILE_NAME)->SetWindowText(dlg.GetFileName());
GetDlgItem(IDC_FILE_SIZE)->SetWindowText(m_strFileSize);
GetDlgItem(IDC_TRANSFERS_TIP)->SetWindowText(_T("已发送:")); //关闭文件
file.Close();
UpdateData(FALSE); //发出文件发送请求
for (int i=0;i<50;i++)
{
if (m_psockClient[i]!=NULL)
{
CMessage* pMsg = new CMessage(REQUEST, m_strFileName, m_dwFileSize);
m_psockClient[i]->SendMsg(pMsg);
}
}
GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
}
}