OnEraseBkGnd刷新时不被调用!!!!!!100粉求答案!!!

huanglin03 2015-04-29 02:12:25
自己写的一个刷新函数都被调用了,如下,代码调试时却发现进不了OnEraseBkgnd(CDC* pDC),导至界面显示一片黑

void CWndStatusBar::RefreshWindow()
{
if (::IsWindow(m_hWnd)==TRUE)
{
Invalidate();
UpdateWindow();
}
}

BOOL CWndStatusBar::OnEraseBkgnd(CDC* pDC)
{
CDC MemDC;
CRect rcWnd;
CBitmap MemBmp;
GetClientRect(&rcWnd);
MemDC.CreateCompatibleDC(pDC);
MemBmp.CreateCompatibleBitmap(pDC, rcWnd.Width(), rcWnd.Height());
MemDC.SelectObject(&MemBmp);
MemDC.FillSolidRect(&rcWnd, RGB(255,193,132));
pDC->BitBlt(0,0,rcWnd.Width(), rcWnd.Height(), &MemDC, 0,0,SRCCOPY);
return TRUE;
}

已经不是第一次了,发现那样写的刷新函数虽然调用了,但是却不担保100%调用OnEraseBkgnd(CDC* pDC),程序是对话框的,属性设置是子窗口!怎么回事,这种情况极少出现,但已经不是第一次了,而且只要一出现,以后就一直始终触发不了OnEraseBkgnd(CDC* pDC)无论如何再出触发不了刷背景的函数了,这是怎么回事????!!!!!!
...全文
250 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2015-06-02
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
赵4老师 2015-06-02
  • 打赏
  • 举报
回复
问题是怎么解决的?分享一下。
赵4老师 2015-06-02
  • 打赏
  • 举报
回复
每只分得20分。
huanglin03 2015-06-02
  • 打赏
  • 举报
回复
引用 7 楼 zhao4zhong1 的回复:
粉都给你,,,
赵4老师 2015-06-02
  • 打赏
  • 举报
回复
huanglin03 2015-04-30
  • 打赏
  • 举报
回复
引用 4 楼 flyhigh 的回复:
InvalidateRect(rc,TRUE);
你这样用,跟我用CWnd里的Invalidate()本质上都一样,我也不想说什么了,这个问题是极少出现,但我在不同的程序Debug下发现已经不是一次两次了,Releaser的倒还没有,但我很担心。。。
flyhigh 2015-04-29
  • 打赏
  • 举报
回复
InvalidateRect(rc,TRUE);
huanglin03 2015-04-29
  • 打赏
  • 举报
回复
猪啊,CSDN里都是一群天天灌水的猪啊,,,,,,没得几个人在研究问题啊,,,,,
huanglin03 2015-04-29
  • 打赏
  • 举报
回复
都是猪啊!!!!没遇到过这种问题的全尼玛是猪娃儿!!!!!
huanglin03 2015-04-29
  • 打赏
  • 举报
回复
而且更奇怪的问题来了,我有时还代码调试发现,OnEraseBkgnd(CDC* pDC),传进来的CDC指针为空!!!!!! 有人遇到过这种问题吗??

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧