问一个使用SetWindowPos制作逃跑按钮的问题
使用MFC生成一个对话框,在上面放一个按钮,并将其关联到一个自定义的派生于CButton的button类(即我的CMyBtn类)的对象,在其中响应OnMouseMove,其中代码如下:
void CMyBtn2::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
GetParent()->GetWindowRect(&m_dlgRect); //获取对话框父窗口尺寸
GetWindowRect(&m_btnRect); //获取对话框尺寸
m_btnWidth=m_btnRect.Width();
m_btnRect.left=m_btnRect.left+m_btnWidth;
m_btnRect.right=m_btnRect.right+m_btnWidth; //重新计算button尺寸
// SetWindowPos(NULL,m_btnRect.left,m_btnRect.right,m_btnRect.Width(),m_btnRect.Height(),SWP_SHOWWINDOW);
MoveWindow(m_btnRect.left,m_btnRect.right,m_btnRect.Width(),m_btnRect.Height(),true);
CButton::OnMouseMove(nFlags, point);
}
问题是当我的鼠标移动到button上时,button就消失了,却没有在别的地方出现,经检查button的新位置没有超出其父窗口(即对话框)范围。我试用了setwindowpos和MoveWindow两个函数都是如此,不知道是怎么回事。请各位指教。