关于在OnPaint中刷新背景图片出错问题的解决

浩子 浩子 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我的程序编译运行好像没有问题,但在DEBUG时,
如果运行长点时间就会报错,具体内容如下,望高手帮忙.
==================================================
头文件中定义:
private:
CBitmap m_Background;
==================================================
在OnInitDialog中有如下:
......
m_Background.LoadBitmap(IDB_MAINBK);
......
==================================================
OnPaint代码段如下:
......
CPaintDC dc(this);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
BITMAP bitMap;
m_Background.GetBitmap(&bitMap);
CBitmap *pbmpOld=dcMem.SelectObject(&m_Background);
dc.StretchBlt0,0,bitMap.bmWidth,bitMap.bmHeight,&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);

if(pbmpOld)
dcMem.SelectObject(pbmpOld);

dcMem.DeleteDC();
......

===================================================
出错会停在一个叫dbgrpt.c的文件中,
代码段如下:

#undef _CrtDbgBreak

_CRTIMP void _cdecl _CrtDbgBreak(
void
)
{
DebugBreak();
}
再继续运行会停在Onpaint中的如下代码处:
CBitmap *pbmpOld=dcMem.SelectObject(&m_Background);

谢谢,这个问题困扰我很久了,郁闷.
...全文

相关推荐

OnPaint()的工作原理

### OnPaint()的工作原理及其在MFC中的应用#### 一、引言在MFC框架下开发Windows应用程序时,经常需要对对话框的外观进行自定义,例如更改背景色或添加背景图片。

cbzjzsb123

MFC Picture控件图像显示全解析:静态与动态加载的四种实现方案

在Windows桌面应用开发中,图形设备接口(GDI)是图形显示的核心基础,它定义了应用程序与图形硬件之间的通信协议。其原理在于通过设备上下文(DC)抽象层,管理绘图表面与资源对象(如位图、画刷),实现图形输出的标准化。这一机制的技术价值在于提供了跨设备的图形编程接口,使得界面渲染、数据可视化等需求得以高效实现。在MFC框架的工程实践中,对话框Picture控件作为GDI的典型应用场景,常被用于仪器面板、数据监控等嵌入式上位机软件的图像展示。针对静态资源嵌入与动态文件加载两种常见需求,开发者可通过控件属性绑

weixin_30443747

如何给MFC对话框添加背景图片

不过要注意,根据具体需求,可能还需要处理如对话框大小变化时的动态调整背景图片、透明度设置等问题,以实现更加灵活和专业的界面设计。

cosmoser2012

对C#的树型控件TREEVIEW添加背景图片

**覆盖OnPaint方法**:接下来,我们需要覆盖控件的OnPaint方法,以便在绘制控件时应用背景图片。

StellaLoooou

treeview 背景图片

**重写OnPaint事件**:在新类中,重写`OnPaint`方法,以便在绘制`TreeView`时添加背景图片。

qq_33479482
评论 17
收藏 已收藏
分享
返回顶部
浩子
VC/MFC 16,550 成员 421,606 内容