19,468
社区成员
发帖
与我相关
我的任务
分享
void CGDIPtestDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (0x44==nChar)//按下s键
{
SetTimer(1,10,NULL);
}
CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}
void CGDIPtestDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
KillTimer(1);
CClientDC dc(this);
Graphics gra(dc.m_hDC);
Image image(L"run.png");
gra.DrawImage(&image,m_nPlayerX,150,m_nSrcImageX,0,80,80,UnitPixel);
//m_nPlayerX为图像在窗口中的X坐标,m_nSrcImageX是源图的X坐标。
//源图是四张80×80的图组成的一幅320×80的大图。
m_nSrcImageX+=80;//源图X坐标加80。
m_nPlayerX+=20;//图像在窗口中的X坐标
if(m_nSrcImageX>320)
{
m_nSrcImageX=0; //当源图像的X超过320,X的最大值时,回到第一张循环
}
CDialog::OnTimer(nIDEvent);
}