关于VC OnPaint函数重载的问题

我在onpaint函数的else后面加了如下代码else{CDC*dc;CPenNewPen,*pOldPen;NewPen.CreatePen(PS_SOLID,1,R... 我在onpaint函数的else后面加了如下代码

else
{
CDC *dc;
CPen NewPen,*pOldPen;
NewPen.CreatePen(PS_SOLID,1,RGB(0,0,0));
dc=GetDlgItem(IDC_SHOW)->GetDC();
pOldPen=dc->SelectObject(&NewPen);
CPoint cPt;
cPt=dc->GetViewportOrg();
long cx,cy;
cx=cPt.x;
cy=cPt.y;
CString str;
str.Format("%d",cx);
MessageBox(str);
dc->MoveTo(0,0);
dc->LineTo(200,200);
ReleaseDC(dc);
CDialog::OnPaint();
}
其中有一个就是弹出当前原点坐标的消息对话框,但是一启动,对话框就一直弹出,我认为是onpaint函数一直在重载,不知道我想的对不对,请大神们给指导一下,不尽感谢!
展开
 我来答
ysdoc
2014-11-16 · TA获得超过746个赞
知道小有建树答主
回答量:586
采纳率:60%
帮助的人:405万
展开全部
你理解的完全正确,onpaint函数由系统调用的,当窗体刷新动作时都会调用这个函数,如果你只是想看调试结果,可以把MessageBox(str);换成TRACE(str);在output窗口中会打印出信息。
更多追问追答
追问
谢谢您的及时回答,我想再请教下:
1、窗体用鼠标拖动,会不会重载函数
2、窗体其它按钮的点击会不会产生重载
3、为什么我只是点了弹出对话框,只没有对窗体进行操作,怎么会产生重载呢
谢谢了
追答
1、2、3都会,不是重载,是系统会回调该函数,只要窗体状态改变都会导致窗体进行重绘,都会调用OnPaint()函数
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式