如何在mfc中同时显示通过调用ondraw函数依次画的多个三角形,我用鼠标画完一个之后,调用inv

如何在mfc中同时显示通过调用ondraw函数依次画的多个三角形,我用鼠标画完一个之后,调用invalidate后前面画的三角形消失了

第一步:定义一个成员变量,用来记录想显示的点。CPoint m_destPoint = new CPoint(-1,-1);
初始化成无效值,因为还没有点击操作
第二步:在OnMouseDown事件里,判断是鼠标左键时,给m_destPoint赋值。然后调用Invalidate()强制刷新

第三步:在OnDraw()事件里,正常绘制处理之后,判断坐标点是否有效,如果有效,则绘制上该点的信息,比如十字架,圆等。追问

可每次绘制完三角形之后,上一个三角形就消失了

温馨提示:内容为网友见解,仅供参考
无其他回答

如何在mfc中同时显示通过调用ondraw函数依次画的多个三角形,我用鼠标画...
第一步:定义一个成员变量,用来记录想显示的点。CPoint m_destPoint = new CPoint(-1,-1);初始化成无效值,因为还没有点击操作 第二步:在OnMouseDown事件里,判断是鼠标左键时,给m_destPoint赋值。然后调用Invalidate()强制刷新 第三步:在OnDraw()事件里,正常绘制处理之后,判断坐标点是否有...

在mfc中,如何通过对话框中的控件调用OnDraw()函数?
ondraw有很多的消息都可以触发,你可以自定义一个函数,函数让ondraw调用,给一个变量来标识是否允许自定义函数执行,比如 void Fun { if(flag){ \/\/do something } } 你自己控制flag来实现你的要求

MFC怎么让这句在OnDraw函数里根据鼠标位置显示
第一步:定义一个成员变量,用来记录想显示的点。CPoint m_destPoint = new CPoint(-1,-1);初始化成无效值,因为还没有点击操作 第二步:在OnMouseDown事件里,判断是鼠标左键时,给m_destPoint赋值。然后调用Invalidate()强制刷新 第三步:在OnDraw()事件里,正常绘制处理之后,判断坐标点是否有...

在MFC中,OnPaint中调用OnDraw函数,这个过程被封装了,求剖析!
在OnPaint中,将调用BeginPaint,用来获得客户区的显示设备环境,并以此调用GDI函数执行绘图操作。在绘图操作完成后,将调用EndPaint以释放显示设备环境。而OnDraw在BeginPaint与EndPaint间被调用。1) 在mfc结构里OnPaint是CWnd的成员函数. OnDraw是CView的成员函数.2) OnPaint()调用OnDraw(),OnPrint也会...

mfc对话框中能否使用OnDraw等函数
可以的,要用绘制,还要注意在背景之后绘,否则会被遮住 代码:CDC *p=this->GetDC();CPen pen;p->SetBkMode(TRANSPARENT);p->TextOut(rect.left,rect.top,"需绘制的文字"); \/\/输出文字 不一定要在OnDraw函数里绘制,随便什么函数都可以,但是要和背景绘制的顺序确定好,防止被遮住 ...

在MFC中View类成员函数怎么调用OnDraw函数
OnDraw函数不用自己调用,当窗口需要重新绘制,系统会自动调。如果自己想重新绘制,可以调用Invalidate、InvalidateRect或者UpdateWindow等函数,引起绘制即可。

MFC中什么时候调用OnDraw()函数?
MFC调用OnDraw()函数是和所有会产生WM_PAINT消息的函数有关,Invalidate()、ReDisplay() 调用时会产生WM_PAINT消息,所以也会使用MFC调用onDraw()函数

MFC中的OnPrepareDC函数
在MFC 中 ONDRAW 之前已经调用了 ONPREPAREDC 函数为你做好映射模式。 默认情况下,其映射模式为 MM_TEXT模式,即 1:1模式。 要改变默认映射模式应重载OnPrepareDC重新设置自己的映射模式。为了提高绘图精度,经常需要改变映射模式。其实,这只是MFC的一种分配机制,修改映射模式完全可以放在 OnDraw中,...

有关MFC的窗口重绘函数OnDraw的问题,到现在都还没有搞明白,求高手帮忙...
OnDraw是窗口产生了重绘之后才会被调用 。重绘是窗口产生了无效区域之后触发,比如窗口被遮挡又解除时,windows自动触发无效区域(并带上擦除标记),然后发送WM_PAINT消息,MFC封装处理此消息并调用OnDraw虚函数。BeginPaint时若区域有擦除标记会触发WM_NCPAINT and WM_ERASEBKGND重绘无效区的窗口背景(在On...

如何在MFC中画出规定大小的图框,并在上面实现显示功能
HDC hdc=::CreateDC("DISPLAY",0,0,0)\/\/创建整个屏幕DC 在这个DC上不仅能越过控件覆盖还能越过主窗口覆盖,如果你的程序不在前面但是调用了绘图语句就会把图绘到别的窗口上去了.至于它的坐标就得你自己计算了(如使用:ScreenToClient(),ClientToScreen()等函数)....

相似回答