用mfc写的汉诺塔演示程序
用mfc写了个汉诺塔的演示程序,用的单线程实现的。
现在的问题是每次挪动了一个盘子之后childview不会暂停的,导致结果是所有的盘子瞬间挪到了第三个塔上,
我在汉诺塔的Move函数中加了sleep(500)也无济于事,请问如何实现每次挪动一个盘子就暂停一下的功能?要用单线程实现啊。
[解决办法]
不要用消息发送来重绘,直接在Move里重绘试试。
void Move( Tower& x,Tower& y)
{
y.AddPlate(x.Top());
x.RemovePlate();
reinterpret_cast<CMainFrame*>(AfxGetApp()->m_pMainWnd)->m_wndView.UpdateWindow();
// ::PostMessage(hwnd,WM_REFRESH,0,0);
Sleep(1000);
}
试试这个