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;
}
}
非常感激.. 展开
{
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;
}
}
非常感激.. 展开
4个回答
展开全部
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;
}
不知道你那个代码是否有别的原因,我这个这样是可以运行,并且是有效果的
{
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控件中利用上述函数添加背景颜色却不会报错,不知道这是什么原因..
追答
既然是这样可能不是这个的问题,你查查是否是别的代码引起的
展开全部
一般情况下和指针越界,空指针等问题有关。就这些代码吗?检查一下控件名是IDC_EDIT_IN吗?
试着先clean整个工程再build一下呢?
试着先clean整个工程再build一下呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-09-06
展开全部
最后没有返回值?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主是不是在程序里加断言了?
追问
没有加断言,谢谢..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询