做除数的之前都判断
if(0 == m_rectmin.Width())
{
//异常处理代码
}
else
{
rect.left = recttemp.Width() * lpRect->left/m_rectmin.Width();
}
if(0 == m_rectmin.Width())
{
//异常处理代码
}
else
{
rect.left = recttemp.Width() * lpRect->left/m_rectmin.Width();
}
解决方案 »
- bcgcontrolbar中cscrollview类的oninitialupdate函数调用顺序
- MFC 下在picture 中显示视频问题,不能正常释放内存?
- 生成lib和dll的问题,Debug可以,Release不行
- windowsxp下有没有压缩/解压缩文件的API函数?
- 看看这段代码,顺便进来打我~
- VC中怎么多人协同编写程序
- VFP
- 如何读取机器进程,并显示
- 现在市场上有什么比较好的VC.NET书籍??帮忙推荐一下
- 请问能否保护可执行程序不被修改,如被修改则不执行或退出
- CAsyncSocket异步类无法直接使用吗?//必须要重写虚函数才能使用?
- FAT属于"照映文件",那么哪种文件系统属于"随机文件"或者"索引文件"?
程序中的每个除数,都要处理 其为0的可能性.
可以强制改为一个合法的数,或者函数直接返回.
也可返回一个自己的异常.一般我是这么处理;
int iWidth = m_rectmin.Width();
if(iWidth==0) iWidth = 1;
{
CDialog::OnSize(nType, cx, cy);
CRect rc; CWnd *pWnd = GetDlgItem(IDC_STA);
if(pWnd && nType != 1)
{
for(int i=0; i < 5; ++i)
{
pWnd->GetWindowRect(&rc);
ScreenToClient(&rc);
if(m_ClienRc.Width() <= 0 || m_ClienRc.Height() <= 0)
{
pWnd->MoveWindow(rc);
pWnd = GetNextDlgGroupItem(pWnd);
}
else
{
rc.left = rc.left * cx / m_ClienRc.Width();
rc.right= rc.right* cx / m_ClienRc.Width();
rc.top = rc.top * cy / m_ClienRc.Height();
rc.bottom=rc.bottom*cy / m_ClienRc.Height(); pWnd->MoveWindow(rc);
pWnd = GetNextDlgGroupItem(pWnd);
}
}
}
GetClientRect(&m_ClienRc);
Invalidate(TRUE);
}