Win32屏幕//小球移动,屏幕坐标函数,屏幕句柄,以及重绘函数
1个回答
展开全部
1、在WM_CREATE/WM_INITDIALOG 消息中设置一个定时器。
2、在定时器中修改小球坐标,并InvalidateRect刷新屏衫稿幕
3、处理WM_ERASEBKGND消息事件,并返回1
4、核谨处理WM_PAINT 消息事件, 使用双缓冲,先依据坐标将小球绘制内容改塌基绘制到一张图片,然后将图片内容直接BITBLT 到PAINTDC 中。
整个绘制流程完毕
2、在定时器中修改小球坐标,并InvalidateRect刷新屏衫稿幕
3、处理WM_ERASEBKGND消息事件,并返回1
4、核谨处理WM_PAINT 消息事件, 使用双缓冲,先依据坐标将小球绘制内容改塌基绘制到一张图片,然后将图片内容直接BITBLT 到PAINTDC 中。
整个绘制流程完毕
更多追问追答
追问
屏幕坐标函数
屏幕句柄
屏幕绘图用?
PAINTSTRUCT obj={0};
HDC hDC=BeginPaint(hWnd,&obj);
HPEN nPen=CreatePen(PS_DASH,6,RGB(192,168,026));
追答
struct CPos { int x; int y; };
class xxxx : public cdialog
{
CPos m_pos;
OnTimer(...)
{
if (id == xxx) { m_pos.x = xxx; m_pos.y =xxx; invalidaterect(NULL) } // 这块的坐标你自己按照算法定义
}
OnEraseBkgnd(xxx) { return 1; }
OnPaint(....)
{
CPaintDC dc(m_hWnd);
CRect rc;
GetClientRect(&rc);
CImage image;
image.create(rc.width(),rc.height(),32);
HDC hDC = image.getdc();
// .... 绘制小球到 hDC
image.ReleaseDC();
image.BitBlt(dc,0,0); // 将位图绘制到PAINTDC
}
};
以上代码只是一个伪代码。 你依据这个进行修改就可以了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |