CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
(图)邪恶的韩国UMPC 使用 Java 编写数据库应用新规范
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

急,初学者关于动态加载位图的问题

楼主MJose(Jose)2005-12-20 16:54:33 在 VC/MFC / 界面 提问

我是一个VC的初学者,希望各位高手能帮帮我,我有好多问题啊  
   
  1.首先对于控件的ID我不大清楚他到底是什么,好像不能当变量名用,希望各位指导一下  
   
  2.我在窗体上放了一个图像控件(ID:PIC),类型Bitmap,在工程里有两幅位图资源,ID分别是Bitmap0和Bitmap1,我希望通过鼠标点击实现两幅位图的切换,如何实现?各位高手最好能给我写一下代码,谢谢了。  
   
  3.在添加成员变量时,我发现图像控件不能添加布尔变量,是这样么?高手能给解释一下么?  
   
  最后,谢谢大家,能不能推荐几本VC入门的书籍,我现在真的很需要,谢谢了。 问题点数:100、回复次数:9Top

1 楼aa3000(杀手K)回复于 2005-12-20 17:10:43 得分 0

ID用作标识资源,用   FindResource   等函数可以操作,  
   
  在鼠标事件写代码就可以切换图片  
   
  不明白   “图像控件不能添加布尔变量”是什么意思。  
   
  书嘛,我没看过。Top

2 楼bigdog942(zhiyuanhu)回复于 2005-12-20 17:26:41 得分 10

ID号就是标识资源,图片的变量定义HBITMAP   hbmp;  
  我也是在学vc++的,你可以下载孙鑫的视频教学来看,说得特别的好,用emule来下载比较好  
  你在消息循环那,就是   while(   msg.message!=WM_QUIT   )或其他的语句  
  然后case那加入case   VK_LBotton(虚拟键,鼠标左键):    
  .....  
  ,其它代码就不细化了  
  .....  
   
  Top

3 楼happyparrot(快乐鹦鹉)回复于 2005-12-20 17:29:32 得分 20

1.首先对于控件的ID我不大清楚他到底是什么,好像不能当变量名用,希望各位指导一下  
  资源号就是控件的身份证。可以用GetDlgItem函数,根据控件的ID得到控件指针  
   
  2.我在窗体上放了一个图像控件(ID:PIC),类型Bitmap,在工程里有两幅位图资源,ID分别是Bitmap0和Bitmap1,我希望通过鼠标点击实现两幅位图的切换,如何实现?各位高手最好能给我写一下代码,谢谢了。  
  图像控件一般用来显示静态的图像。如果要动态变化,不如直接在对话框上画。当然,如果你只有两副图,还有个办法是放置两个图像控件,分别静态显示两个图像,两个控件在同一个位置,同时只显示其中的一个,也可以满足你的要求。  
   
  3.在添加成员变量时,我发现图像控件不能添加布尔变量,是这样么?高手能给解释一下么?  
  不能添加布尔变量,该控件不支持。  
   
  最后,谢谢大家,能不能推荐几本VC入门的书籍,我现在真的很需要,谢谢了。  
  谁便弄本VC编程指南之类的书,都可入门。入门之后才会有更多的选择,该看什么书。Top

4 楼Atomictry(天影)回复于 2005-12-20 17:48:27 得分 50

1.   一个控件对应一个ID,   系统通过这个ID来Create这个控件  
   
  3.   不支持,它是CStatic类  
   
  2.  
  //   这两个函数实现换图  
  //   nCtrlID:   picture控件ID,   strFileName:   文件路径  
  void   SetStaticBmp(UINT   nCtrlID,   CString   strFileName)  
  {  
  HBITMAP   hBitmap;  
  CStatic   *pStatic   =   (CStatic   *)GetDlgItem(nCtrlID);  
  hBitmap     =     (HBITMAP)     LoadImage(AfxGetInstanceHandle(),   strFileName,     IMAGE_BITMAP,      
  0,   0,   LR_LOADFROMFILE   |   LR_CREATEDIBSECTION);  
  pStatic->ModifyStyle(0xF,   SS_BITMAP);  
  pStatic->SetBitmap(hBitmap);  
  }  
   
  //   uBmpResource:图片资源ID;   uCtrlResource:   Picture控件ID  
  void   SetStaticBmp(UINT   uBmpResource,   UINT   uCtrlResource)    
  {  
          HBITMAP   hBitmap;  
          CStatic   *pStatic   =   (CStatic   *)GetDlgItem(uCtrlResource);  
          hBitmap   =   (HBITMAP)LoadImage(  
                  AfxGetInstanceHandle(),    
                  MAKEINTRESOURCE(uBmpResource),    
                  IMAGE_BITMAP,    
                  0,    
                  0,    
                  LR_LOADMAP3DCOLORS);  
          pStatic->ModifyStyle(0xF,   SS_BITMAP);  
          pStatic->SetBitmap(hBitmap);  
  }Top

5 楼MJose(Jose)回复于 2005-12-21 15:11:09 得分 0

谢谢Atomictry的帮助,我还有一个问题,对于一个Static控件,怎样编写他的鼠标响应?我用类向导建了消息BN_CLICKED的函数,并照你的代码写了,但是却没有反映  
  窗体上添加图像控件(ID:PIC),工程中包含两幅位图资源,ID分别是Bitmap0和Bitmap1,PIC终预先加载Bitmap0,希望通过一次鼠标点击,加载Bitmap1  
   
  代码如下:  
  void   CInterfaceDlg::OnPICClick()    
  {  
  HBITMAP   CurrentBitmap;  
  CStatic   *pPIC;  
   
                    pPIC=(CStatic   *)GetDlgItem(PIC);  
   
                    CurrentBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),  
                                              MAKEINTRESOURCE(Bitmap1),  
                                              IMAGE_BITMAP,  
                                              0,  
                                              0,  
                                              LR_LOADMAP3DCOLORS);  
   
                    pPIC->ModifyStyle   (0xF,SS_BITMAP);  
  pPIC->SetBitmap(CurrentBitmap);  
  }Top

6 楼wangjs720(听雨舟)回复于 2005-12-21 16:02:11 得分 0

汗...Top

7 楼MJose(Jose)回复于 2005-12-21 16:16:17 得分 0

小弟初学,很多都不懂,大家教教我啊Top

8 楼happyparrot(快乐鹦鹉)回复于 2005-12-21 16:24:23 得分 20

我用类向导建了消息BN_CLICKED的函数,并照你的代码写了,但是却没有反映  
  ==需要将该Static控件属性中的NOTIFY属性选上。否则Static控件不响应任何消息。Top

9 楼MJose(Jose)回复于 2005-12-21 16:43:22 得分 0

谢谢happyparrot,确实是这样Top

相关问题

  • 关于动态加载的问题,急!!!
  • 关于WDM的动态加载???急呀!!!
  • 急需动态加载DLL的方法
  • PlaceHolder动态加载问题(很急)
  • VC.net中的动态加载问题(急)
  • 如何动态加载图标?
  • 动态加载DLL!!!!!!!!!!!!!!!!!!!
  • 动态加载dll
  • 动态加载Banner?
  • 动态加载Combo

关键词

  • 控件
  • 图像
  • 函数
  • 代码
  • 鼠标
  • 变量
  • hbitmap
  • bitmap
  • cstatic
  • 加载

得分解答快速导航

  • 帖主:MJose
  • bigdog942
  • happyparrot
  • Atomictry
  • happyparrot

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo