流星雨问题
请教大家一个问题:
在一个基于对话框的程序中,要在窗口创建的时候,从窗口顶部随机的横坐标处,不断的落下已编好的位图,就像流星雨样。
现在我只能生成一个位图落下,但无法实现不断的落下,麻烦高手指点一下!!万分感谢
我的一个位图落下是这样实现的,高手指点下:
BOOL CLinDlg::OnInitDialog()
{
m_uStarStatic.Create("",WS_CHILD |WS_VISIBLE|SS_BITMAP|WS_DISABLED,
CRect(m_uStarXPoint,-50,60,60),this,300 );//创建1个位图的CStatic实例,m_uStarXPoint是一个随机数
m_uStarStatic[i].SetBitmap((HBITMAP)m_uStar);
GetDlgItem(300)->GetWindowRect(&m_uStarOriginRect); //
}
void CLinDlg::OnTimer(UINT nIDEvent)
{
m_uStarCurrentRect=m_uStarOriginRect;
m_uStarCurrentRect.bottom=m_uStarCurrentRect.bottom+20;
m_uStarCurrentRect.top=m_uStarCurrentRect.top+20;
m_uStarOriginRect=m_uStarCurrentRect;
GetDlgItem(300)->MoveWindow(&m_uStarOriginRect);
}
[解决办法]
简单啊,判断到了窗体底部,将m_uStarCurrentRect矩形坐标重新设置为窗体顶部,也就是top从0开始。当然bottom从0开始看起来更美观。
[解决办法]
三楼说的没错,你多做几个位图对象,之后让他们下落时之间有一定的时间差就可以了