void CMFCGLSetupView::OnIterAdd() { iter += 1; oldx = initX; oldy = initY; InvalidateRect(0, FALSE); // TODO: 在此添加命令处理程序代码 } void CMFCGLSetupView::OnIterDec() { iter -= 1; oldx = initX; oldy = initY; if (iter < 0) { iter = 0; } InvalidateRect(0, FALSE); // TODO: 在此添加命令处理程序代码 }
时间: 2024-04-03 17:35:56 浏览: 61
iter:功能性的C ++迭代器库
这段代码是MFC框架下的命令处理函数,用于响应用户在界面上点击增加或减少迭代次数的按钮。具体来说,当用户点击增加迭代次数的按钮时,`OnIterAdd`函数会将`iter`变量加1,然后重新从初始点开始绘制Koch曲线,并且使窗口客户区域无效,强制窗口重绘。当用户点击减少迭代次数的按钮时,`OnIterDec`函数会将`iter`变量减1,然后同样重新绘制Koch曲线并使窗口客户区域无效。如果`iter`小于0,则将其置为0。
这两个函数中,`InvalidateRect`函数的作用是使窗口客户区域无效并强制窗口重绘,从而实现Koch曲线的动态更新。在调用`InvalidateRect`函数之后,由于窗口客户区域已经无效,因此Windows系统会在下一次绘制窗口时调用`OnDraw`函数重新绘制Koch曲线。
阅读全文