MFC中在为控件添加背景色时运行时出现“Debug Assertion Failed!" ,具体代码如下:

HBRUSHCQueryDlg::OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor){HBRUSHhbr=CDialog::OnCtl... HBRUSH CQueryDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here
if (pWnd-> GetSafeHwnd() == GetDlgItem(IDC_EDIT_IN)-> GetSafeHwnd())
{
pDC-> SetBkColor(RGB(189,252,201));
return m_brush2;
}
}
非常感激..
展开
 我来答
yz4330181
2011-09-06 · TA获得超过105个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:124万
展开全部
HBRUSH CTESTLISTBOXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

if (pWnd-> GetSafeHwnd() == GetDlgItem(IDC_EDIT1)-> GetSafeHwnd())
{
pDC-> SetBkColor(RGB(189,252,201));
//return m_brush2;
}
return hbr;
}
不知道你那个代码是否有别的原因,我这个这样是可以运行,并且是有效果的
追问
感谢你的回答,我现在是做一个虚拟导游作品,里面有个语音查询对话框,在添加对话框的EDit控件的背景色后,运行程序对话框只能调出一次,如果再想调出此对话框就不成功了,会出现“Debug Assertion Failed!" ,不过我在程序其他的对话框里的EDIT控件中利用上述函数添加背景颜色却不会报错,不知道这是什么原因..
追答
既然是这样可能不是这个的问题,你查查是否是别的代码引起的
fantasy1136
2011-09-06 · TA获得超过143个赞
知道答主
回答量:135
采纳率:0%
帮助的人:56.3万
展开全部
一般情况下和指针越界,空指针等问题有关。就这些代码吗?检查一下控件名是IDC_EDIT_IN吗?
试着先clean整个工程再build一下呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-09-06
展开全部
最后没有返回值?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhan_long_long
2011-09-07 · 超过26用户采纳过TA的回答
知道答主
回答量:126
采纳率:0%
帮助的人:73万
展开全部
楼主是不是在程序里加断言了?
追问
没有加断言,谢谢..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式