MFC中OnPaint()函数

voidCSiftRegDlg::OnPaint(){CPaintDCdc(this);//devicecontextforpainting//TODO:在此处添加消息处... void CSiftRegDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CDialog::OnPaint()
CRect R1,R2,R3;
this->GetWindowRect(&R3);
if (m_Sen_Img_Flag)
{
m_Static.SubclassDlgItem(IDC_STATIC2,this);
m_Static.GetWindowRect(&R1);
SenImg.DrawToHDC(dc.GetSafeHdc(),CRect(R1.left - R3.left - 2, R1.top - R3.top - 25, R1.right - R3.left - 2, R1.bottom - R3.top - 25));
}
else
{
// if (!is_reg)
//UpDateStatus("请载入待配准图像!", IDC_STATIC1);
}
if (m_Ref_Img_Flag) {
m_Static.SubclassDlgItem(IDC_STATIC3,this);
m_Static.GetWindowRect(&R2);
RefImg.DrawToHDC(dc.GetSafeHdc(),CRect(R2.left - R3.left - 2, R2.top - R3.top - 25, R2.right - R3.left - 2, R2.bottom - R3.top - 25));
}
}
求大神帮我看看这段代码是否有问题,调试的时候报错提示Debug Assertion Failed.把OnPaint()函数中的代码注释掉就没有这个问题了
展开
 我来答
兽妈EL83J
推荐于2016-08-13 · TA获得超过118个赞
知道答主
回答量:111
采纳率:100%
帮助的人:123万
展开全部
这个在窗口创建的时候会调用一次,产生无效区域的时候又会调用刷新,比如改变窗口大小,窗口被遮挡,内容更新等,具体请参考WM_PAINT
http://baike.baidu.com/link?url=n_swq3w3g5ygoQc1Y4v8hehLslWfnyhy71TWVAkxhjqQz1lIJxjhcLe9ZbzpyBDzAkG1Gik84kU861aTHsQ_Va
请采纳答案,支持我一下。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
潮范君
推荐于2018-03-26 · 知道合伙人软件行家
潮范君
知道合伙人软件行家
采纳数:1440 获赞数:2874
从事软件开发工作一年有余,主要C++方向。

向TA提问 私信TA
展开全部
提示断言失败,从这块代码上也看不出哪里有问题,
最好在OnPaint函数第一句设断点,一步一步往下找吧,定位到引起错误的语句。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式