4515|7

78

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

EVC中CStatic的问题(SetbitmapCStatic * pSat = (CStatic*)GetDlgItem(IDC_STATI) [复制链接]

VC6下的代码:
  CStatic* pSat = (CStatic*)GetDlgItem(IDC_STATIC111);
  pSat->ModifyStyle(0,SS_BITMAP|SS_CENTERIMAGE);
  HBITMAP hBitmap = ::LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_BITMAP1));
  pSat->SetBitmap(hBitmap);
图片IDB_BITMAP1可以被加载到CStatic(IDC_STATIC111)上显示

EVC4下的代码:
  CStatic* pSat = (CStatic*)GetDlgItem(IDC_STATIC111);
  pSat->ModifyStyle(0,SS_BITMAP|SS_CENTERIMAGE);
  HBITMAP hBitmap = ::LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_BITMAP1));
  pSat->SetBitmap(hBitmap);//这里CStatic上不显示图片IDB_BITMAP1
  pSat->SetBitmap(hBitmap);//这里CStatic上显示图片!!!!!!

请问:有人能解释这个问题吗?我是无意中发现SetBitmap函数执行两次以上是可以的。
这样写有问题吗?不行的话,怎么写比较好?


   

最新回复

不知道,帮顶  详情 回复 发表于 2010-1-25 16:24
点赞 关注

回复
举报

64

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
帮顶下。

MARK,我也学习下。
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
楼主:
CStatic* pSat = (CStatic*)GetDlgItem(IDC_STATIC111);
  pSat->ModifyStyle(0,SS_BITMAP|SS_CENTERIMAGE);
  HBITMAP hBitmap = ::LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_BITMAP1));
  pSat->SetBitmap(hBitmap);//这里CStatic上不显示图片IDB_BITMAP1
  pSat->SetBitmap(hBitmap);//这里CStatic上显示图片!!!!!!
这些代码执行之后
这个pSat你delete了吧?然后pSat = NULL;
如果这样,你先注释掉delete,内存泄露先不管它。
然后用一样pSat->SetBitmap(hBitmap);
试试能不能够显示图片。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

4
 
如果可以显示。
delete pSat放到析构函数中去。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

5
 
to 楼上:
没有执行delete;上面是专门测试功能的,就没考虑内存泄露。
就在资源里加了一个Static,导入一个bmp图像,加了一个button;上述代码放在了对button的响应里。
VC的开发过程完全一样
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

6
 
呵呵,测试时最好一次只测试一个地方的东西,以前我也犯过这方面的错误,建议用官方的东西测试,如下:
  1. Example
  2. CStatic myStatic;

  3. // Create a child bitmap static control.
  4. myStatic.Create(_T("my static"),
  5.   WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE, CRect(10,10,150,50),
  6.   pParentWnd);

  7. // Set the bitmap of the static control to be the
  8. // system check-mark bitmap.
  9. myStatic.SetBitmap( ::LoadBitmap(NULL, MAKEINTRESOURCE(OBM_CHECK)) );
  10. Requirements

  11.   Windows CE versions: 1.0 and later  
  12.   Header file: Declared in Afxwin.h
复制代码
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

7
 
由于我使用的时候,就是要把图片加载到现有的CStatic上,至少要完成上述的这些功能....
希望高人指点呀!SetBitmap除第一次无效为,以后每次赋值均有效(曾经做了一个图片循环进行测试)
搞不明白为什么呀?
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

8
 
不知道,帮顶
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表