vc++中如何在基于对话框编程中新添加一个类,在这个类中重载OnPaint()函数用于画图,我是新手求高手指点

我编的程序在调试运行的时候重载的OnPaint()函数没有执行

额……你是要新创建一个CWnd类还是一个普通类,

要是普通的类,是不能重载OnPaint()函数的,不过你可以写一个函数并传入CDC指针进行画图!
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-29
这个类是否继承CDialog类了。追问

我只用一个对话框,好像继承不了CDialog类吧。

追答

对话框都是继承CDialog的。

VC++ MFC在对话框上画图问题
1、如何在新建的一个dialog中添加onpaint()函数?例如你新建了一个dialog,类名为test22(添加类是双击新建那个窗口),接着找到这个类的头文件test22.h,在其中的protected中添加一行afx_msg void OnPaint();这样就可以在test22.cpp中用onpaint()函数了,添加void test22::OnPaint(){}就可以了:...

C++ MFC如何在对话框上画动态图 画图
void CMFCApplication2Dlg::OnPaint(){if (IsIconic()){\/\/...else{CPaintDC dc(this); \/\/ device context for paintingCPoint Pt[7];Pt[0] = CPoint(20+m_incr, 50);Pt[1] = CPoint(180+m_incr, 50);Pt[2] = CPoint(180+m_incr, 20);Pt[3] = CPoint(230+m_incr, 70)...

【VC++】对话框里绘图
用双缓冲绘图,创建一个和控件一样大小的兼容位图就可以了。代码发给你了,具体请参考代码。

VC++中对话框程序如何重绘???
你是在对话框中的onpiant和OnEraseBkgnd中进行重绘的,当这两个函数执行完后,控件自身还有重绘函数,自然会覆盖对话框中的重绘,所以你每次都无法看得你在对话框中重绘的效果,被覆盖了,要想在对话框中对控件进行重绘可以用OnCtlColor函数。

VC++基于对话框的画图程序:怎么在对话框窗口中绘图??
1、右上部分您可以用任何控件,譬如:CButton,假设其ID号:ID_BUTTON1;2、CWnd *pi=GetDlgItem(ID_BUTTON1);---注意:GetDlgItem是Cwnd类中函数,在此格式是继承;3、CDC *dc=pi->GetDC();dc->Rectangle(...);\/\/可以做任何图了,但一般用RECT rec;及GetClientRect(&rec);保证在控件.....

怎么向vc++对话框中添加图片
方法一:1、声明成员变量CBrush m_brush;2、在InitDialog中添加代码:CBitmap bmp;bmp.LoadBitmap(IDB_BITMAP1); \/\/这个IDB_BITMAP1要自己添加 m_brush.CreatePatternBrush(&bmp);3、重载对话框的OnCtlColor,改最后的返回值:return (HBRUSH)m_brush;方法二:把下面这段代码加进OnPaint()里就...

在vc++中 OnDraw()函数和 Invalidate()函数起什么作用
OnDraw()函数每当窗口发生重绘时就会执行,它其实跟消息处理函数OnPaint()差不多。当在View类里添加了消息处理函数OnPaint()时,OnPaint()就会覆盖掉OnDraw()。Invalidate()是使视图类窗口无效的函数,当要刷新视图时,就可以掉用它,以便发送一个WM_PAINT消息引起窗口的重绘。它有一个默认的参数TRUE...

vc++ 如何在对话框中画线
第一步、在鼠标左键按下时记住鼠标位置,作为直线的起点 第二步、在鼠标左键弹起时记住鼠标位置作为直线的终点 第三步、调用Invalidate函数使得对话框无效,引起OnPaint 函数调用,然后在OnPaint函数中使用GDI函数MoveTo函数和LineTo根据前面记录的直线起点和终点绘制直线。

怎样用MFC的对话框中画坐标曲线图
单文档的绘图一般都在OnDraw()当中进行,基于对话框的是OnPaint()你只需要计算出合适的坐标就好了。利用CDC类下的LineTo MoveTo 绘制直线即可 对应的曲线也有相应的函数,这是静态的。我这里有一个动态绘制的Demo,以前参考过的 不知道符不符合楼主的要求。要的话可以给个邮箱 ...

怎样用vc++编写一个窗口应用程序?
1、首先设计好界面。2、然后编写DoDataExchange程式。3、然后编写OnInitDialog初始化程式。4、然后编写OnSysCommand程式。5、然后编写OnPaint绘制程式。6、最后编写OnSetlock锁程式。

相似回答