两个控件是不是不能调用一个图片啊? 调用了是不是容易出错? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为神马我用了多个setbitmap 执行程序的时候会报错 unknow software exception(0x80000003)位置为0x7c921200?具体就是在对话框上面做一个LED的显示灯 需要往一个静态文本上面刷一个绿灯的bmp 和 一个红灯的bmp~但是刷的时间长了就会报错,是不是因为图片一值往静态文本上面刷 导致内存写满了?有没有什么方法能解决这个问题啊?比如说在另一幅bmp文件加载之前我先把原来的bmp文件从静态文本控件上面删除掉? GDI+的bitmap好像不行,它里面好像是独占的用其他的吧 GDI+是什么东西 不懂啊 我就是从insert里面插入的BMP资源啊 我用过CStatic的setbitmap,加载的资源的是类静态成员,因多个控件需要,所以只从文件加载一次即可。如果只读的话,是没有问题的。 你打开任务管理器,看看你的进程GDI数量,应该是你的GDI泄露造成的。 请问大熊哥 任务管理在哪打开?是WINDOWS的任务管理器吗? /* //即时温度显示// if(f_temp<100) strtemp.Format("% 3.4f ",f_temp);// else// strtemp.Format("%3.4f ",f_temp); //格式对齐 m_ledrecv.SetText(strtemp); //LED显示 //温度限值显示 //fan// if(rxdata[2]<100) fanlimit.Format(" %d ",rxdata[2]);// else// fanlimit.Format("%d ",rxdata[2]); //格式对齐 m_fanset.SetText(fanlimit); //beep beeptemp=rxdata[2]+2; //根据风扇温度这里设置了一个预订的报警温度 // if(rxdata[2]<100) beeplimit.Format(" %d ",beeptemp);// else// beeplimit.Format("%d ",beeptemp); //格式对齐 m_beepset.SetText(beeplimit); //是否达到散热温度 if(f_temp>rxdata[2]) { //判断超过报警温度没有 if(f_temp>(beeptemp)) { temp_notice="***WARNING***"; //temp LED设置为"橙色"// m_ledrecv.SetColor(BLACK,RGB(255, 143 , 51)); //系统指示灯显示为"橙色" m_ledsystem.SetBitmap(::LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_RED))); //系统文本显示为 "警告" GetDlgItem(IDC_STATESYSTEM)->SetWindowText( "★WARNING★" ); } //达到散热温度 但是没有达到报警温度// else// { //temp Led显示为"黄色" m_ledrecv.SetColor(BLACK,YELLOW); //风扇文本显示"打开" GetDlgItem(IDC_STATEFAN)->SetWindowText( "ON" ); //风扇指示灯"打开" m_ledfan.SetBitmap(::LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_GREEN1))); //系统文本显示为"Nromal" GetDlgItem(IDC_STATESYSTEM)->SetWindowText( " Hot" ); //系统指示灯显示为"黄色" m_ledsystem.SetBitmap(::LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_YELLOW))); // } } //如果没有达到风扇工作温度 else { temp_notice="Normal"; //temp LED设置为"绿色" m_ledrecv.SetColor(BLACK,RGB(0, 255 , 0)); //风扇文本显示"OFF" GetDlgItem(IDC_STATEFAN)->SetWindowText( "OFF" ); //风扇指示灯"关闭"// m_ledfan.SetBitmap(::LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_GREY1))); //系统文本显示为"Nromal" GetDlgItem(IDC_STATESYSTEM)->SetWindowText( " Normal" ); //系统指示灯显示为"绿色" m_ledsystem.SetBitmap(::LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_GREEN))); 我在window任务管理器里面没有找到GDI啊 是任务管理器,在进程属性页内看你的进程所占GDI的数量是不是一直在涨,如果没有这列,就在菜单【查看】/【选择列】内GDI选项内选钩再看。 大熊哥 你说对了 GID 猛涨!是什么情况呀 应该怎么解决呢? GDI猛涨是因为GDI对象泄漏造成的,用过的GDI对象要及时删除。【windows程序设计】这本书里有关于GDI的操作讲解,有电子版的,你可以下一本。 vc中无法成功,为什么??请指教 非主线程中调用SetWindowHookEx()遇到问题 异步socket 如何设置 超时? 每写一个个类都继承一个接口,每个接口都继承自IUnknownEx,请问这是采用的什么技术,com | ATL 还是什么,思想精髓是什么? VC 写数据库登陆程序,一定要写服务端? 关于病毒Backdoor.win32.tompai.e 虚心请教 MFC写的界面,如何把所有控件值保存到配置文件 获取系统的工作目录函数是??? 如何抓取控件的消息? mfc显示子窗口的问题 如何替换WebBrowser控件所显示网页调用的js文件?
用其他的吧
// if(f_temp<100)
strtemp.Format("% 3.4f ",f_temp);
// else
// strtemp.Format("%3.4f ",f_temp); //格式对齐
m_ledrecv.SetText(strtemp); //LED显示
//温度限值显示
//fan
// if(rxdata[2]<100)
fanlimit.Format(" %d ",rxdata[2]);
// else
// fanlimit.Format("%d ",rxdata[2]); //格式对齐
m_fanset.SetText(fanlimit);
//beep
beeptemp=rxdata[2]+2; //根据风扇温度这里设置了一个预订的报警温度
// if(rxdata[2]<100)
beeplimit.Format(" %d ",beeptemp);
// else
// beeplimit.Format("%d ",beeptemp); //格式对齐
m_beepset.SetText(beeplimit);
//是否达到散热温度
if(f_temp>rxdata[2])
{ //判断超过报警温度没有
if(f_temp>(beeptemp))
{
temp_notice="***WARNING***";
//temp LED设置为"橙色"
// m_ledrecv.SetColor(BLACK,RGB(255, 143 , 51));
//系统指示灯显示为"橙色"
m_ledsystem.SetBitmap(::LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_RED)));
//系统文本显示为 "警告"
GetDlgItem(IDC_STATESYSTEM)->SetWindowText( "★WARNING★" );
}
//达到散热温度 但是没有达到报警温度
// else
// {
//temp Led显示为"黄色"
m_ledrecv.SetColor(BLACK,YELLOW);
//风扇文本显示"打开"
GetDlgItem(IDC_STATEFAN)->SetWindowText( "ON" );
//风扇指示灯"打开"
m_ledfan.SetBitmap(::LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_GREEN1)));
//系统文本显示为"Nromal"
GetDlgItem(IDC_STATESYSTEM)->SetWindowText( " Hot" );
//系统指示灯显示为"黄色"
m_ledsystem.SetBitmap(::LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_YELLOW)));
// }
}
//如果没有达到风扇工作温度
else
{
temp_notice="Normal";
//temp LED设置为"绿色"
m_ledrecv.SetColor(BLACK,RGB(0, 255 , 0));
//风扇文本显示"OFF"
GetDlgItem(IDC_STATEFAN)->SetWindowText( "OFF" );
//风扇指示灯"关闭"
// m_ledfan.SetBitmap(::LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_GREY1)));
//系统文本显示为"Nromal"
GetDlgItem(IDC_STATESYSTEM)->SetWindowText( " Normal" );
//系统指示灯显示为"绿色"
m_ledsystem.SetBitmap(::LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_GREEN)));