vc 一个很奇怪的画图问题

小坤 2010-07-18 10:03:20
void CMy22View::next()
{
leastchoices=8;
for (int k=0; k<=7; k++) {
choices=-1;
if( nowi+imove[k] >=0 && nowi+imove[k] <=7 && nowj+jmove

[k]>=0&&nowj+jmove[k]<=7&& QIPAN[nowi+imove[k]][nowj+jmove[k]]==0)
{
choices=0;
for (int l=0; l<=7; l++)
{
if ( nowi+imove[k]+imove[l] >=0 && nowi+imove[k]+imove[l]<=7&& nowj+jmove[k]+jmove[l]>=0 && nowj+jmove[k]+jmove[l]<=7&& QIPAN[nowi+imove[k]+imove[l]][nowj+jmove[k]+jmove[l]]==0)
{
choices++;
}
}
if(choices<leastchoices)
{
leastchoices=choices;
m=nowi+imove[k];
n=nowj+jmove[k];
}
}
}

if(m==nowi && n==nowj) {
AfxMessageBox("end!!");
}
else {
nowi=m;
nowj=n;
QIPAN[nowi][nowj]=1;
CRect rect;
rect.left=nowi*60;
rect.right=nowi*60+60;
rect.top=nowj*60;
rect.bottom=nowj*60+60;
InvalidateRect(&rect);
AfxMessageBox(“!!”);
Sleep(10);
next();
}
}

void CMy22View::OnStart()
{
// TODO: Add your command handler code here
start();
next();
}



这是一个国际象棋马的遍历程序,为什么加上了 AfxMessageBox(“!!”);后才能画出图片,不加就只在最后位置画出了图片。

其中next 是一个递归函数。请大侠们指点呀!!!
...全文
53 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiuxianshen 2010-07-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wltg2001 的回复:]
InvalidateRect(&rect);
=========
在OnPaint中不要调用这个
[/Quote]
+1
wltg2001 2010-07-18
  • 打赏
  • 举报
回复
InvalidateRect(&rect);
=========
在OnPaint中不要调用这个

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧