Visual c++ 在MFCSDI应用程序中调用OnDraw
我试图在VC++中制作一个MFCSDI应用程序,在单击相应的按钮时绘制不同的形状。我们已经在OnDraw()函数中编写了代码。但Ondraw在运行应用程序时会自动被调用。我们希望只在单击相应的按钮时调用它。我们如何继续 您无法阻止只有在按下按钮时才会调用OnDraw 当WM_PAINT到达并要求窗口重新绘制自身时,将调用视图中的OnDraw。不执行OnDraw将导致根本不绘制任何内容 当应用程序再次最小化和最大化时,或者当窗口大小改变时,也会调用OnDrawVisual c++ 在MFCSDI应用程序中调用OnDraw,visual-c++,mfc,Visual C++,Mfc,我试图在VC++中制作一个MFCSDI应用程序,在单击相应的按钮时绘制不同的形状。我们已经在OnDraw()函数中编写了代码。但Ondraw在运行应用程序时会自动被调用。我们希望只在单击相应的按钮时调用它。我们如何继续 您无法阻止只有在按下按钮时才会调用OnDraw 当WM_PAINT到达并要求窗口重新绘制自身时,将调用视图中的OnDraw。不执行OnDraw将导致根本不绘制任何内容 当应用程序再次最小化和最大化时,或者当窗口大小改变时,也会调用OnDraw 我也不能想象一个场景,我只想在按下按
我也不能想象一个场景,我只想在按下按钮时画画。你需要更加精确。这里。正如xMRi所说,OnDraw由框架调用。。。但是,如果您只想在单击按钮时绘制某些内容,为什么不创建一个成员变量,在单击按钮时进行设置,并在执行OnDraw时获取计数
void CYourAppView::OnDraw(CDC* pDC)
{
// MFC code
if(m_bButtonWasClicked)
{
// draw what ever you want
}
}
每次框架调用OnDraw时,必须允许它进行绘制。这就是在打开、取消动画化、调整大小等之后恢复窗口图像的方式。我想根据鼠标单击显示不同的形状。例如,如果用户单击正方形,则应绘制正方形。所以要绘制的代码是用onDraw编写的。那么,如何在单击时只绘制特定的形状呢?你应该在绘制和创建之间做出区别。在视图中创建一个形状。然后你必须画出来。在doneon OnDraw绘制。创建通常在命令处理程序中完成。