Run-Time Check Failure #2 - Stack around the variable 'dy' was corrupted.
xljcn 2009-04-24 05:26:09 本人写了一个全屏时移动按钮的程序,在Release调试下可以通过,但在debug调试下出现如下错误
Run-Time Check Failure #2 - Stack around the variable 'dy' was corrupted.请各位大侠帮忙!
出错代码如下:
int cx=::GetSystemMetrics(SM_CXSCREEN);
int cy=::GetSystemMetrics(SM_CYSCREEN);
CRect rtClient,rtBtn[9],rtBtn1,rtBtn2;
int lx1,ly1,dx1,dy1,lx2,ly2,dx2,dy2,lx[9],ly[9],dx[9],dy[9];
CWnd *pWnd[]={GetDlgItem(IDC_A),GetDlgItem(IDC_B),GetDlgItem(IDC_C),GetDlgItem(IDC_D),
GetDlgItem(IDC_RIGHT),GetDlgItem(IDC_FALSE),GetDlgItem(IDC_FIRST),
GetDlgItem(IDC_BACKTRACK),GetDlgItem(IDC_NEXT),GetDlgItem(IDC_LAST)};
GetClientRect(&rtClient); //获得对话框客户区屏幕坐标
ClientToScreen(&rtClient); //映射为屏幕坐标
for(int i=0;i<=9;i++)
{
pWnd[i]->GetWindowRect(&rtBtn[i]); //获得button屏幕坐标
lx[i]=rtBtn[i].Width(); //button长度
ly[i]=rtBtn[i].Height(); //button高度
dx[i]=rtClient.left+rtBtn[i].left; //离右边框的距离
dy[i]=rtClient.bottom-rtBtn[i].bottom; //离底边框的距离
pWnd[i]->MoveWindow(CRect(CRect(cx-dx[i]-lx[i],cy-ly[i]-dy[i],cx-dx[i],cy-dy[i])));//移动button
}