`

VC显示位图数据

    博客分类:
  • VC++
阅读更多

BOOL CTestView ::  PaintDIB(HDC  hDC,RECT des,RECT src, MYBITMAP    myb){

 BITMAPINFOHEADER*    lpDIBHdr;            // BITMAPINFOHEADER指针
 BOOL     bSuccess=FALSE;      // 成功标志
 HPALETTE hPal=NULL;           // DIB调色板
 HPALETTE hOldPal=NULL;        // 以前的调色板
 
 lpDIBHdr  = myb.lpbmp;
 
 // 找到DIB图像象素起始位置
 int lw=WIDTHBYTES(myb.lpbmp->biWidth*8);
 
 // 获取DIB调色板,并选中它
 if (m_palDIB != NULL)
 {
  hPal = (HPALETTE) m_palDIB->m_hObject;
  
  // 选中调色板
  hOldPal = ::SelectPalette(hDC, hPal, TRUE);
 }
 
 // 设置显示模式
 ::SetStretchBltMode(hDC, COLORONCOLOR);
 int  bw =myb.lpbmp->biWidth;
 int  bh = myb.lpbmp->biHeight;
 
 // 判断是调用StretchDIBits()还是SetDIBitsToDevice()来绘制DIB对象
 if(des.right-des.left>=(src.right-src.left)&&
  (des.bottom-des.top)>=(src.bottom-src.top)
  )
 {
  // 原始大小,不用拉伸。
  bSuccess = ::SetDIBitsToDevice(hDC,                    // hDC
   0  ,        // DestX
   0 ,            // DestY
   bw   ,     // nDestWidth
   bh,       // nDestHeight
   0,            // SrcX
   0,   // SrcY
   0,                         // nStartScan
   bh,  // nNumScans
   myb.data,                  // lpBits
   (LPBITMAPINFO)lpDIBHdr,     // lpBitsInfo
   DIB_RGB_COLORS
   );            // wUsage

 }

   else
 {
  // 非原始大小,拉伸。
    bSuccess = StretchDIBits(hDC,                    // hDC
   des.left  ,        // DestX
   des.top ,            // DestY
   des.right   ,     // nDestWidth
   des.bottom,       // nDestHeight
   src.left,            // SrcX
   src.top,   // SrcY
   src.right,                         // nStartScan
   src.bottom,  // nNumScans
   myb.data,                  // lpBits
   (LPBITMAPINFO)lpDIBHdr,     // lpBitsInfo
   DIB_RGB_COLORS,
   SRCCOPY
   );            // wUsage
 }
 
    // 解除锁定
 
 // 恢复以前的调色板
 if (hOldPal != NULL)
 {
  ::SelectPalette(hDC, hOldPal, TRUE);
 }
 
 // 返回
 return bSuccess;

 

注意它们的第8个参数一个是uStartScan,为0,一个是nSrcWidth,不为0

分享到:
评论

相关推荐

    vc 如何显示位图 图片的显示

    位图数据离文件头的偏移量。接下去的是位图信息头,它包括了位图的许多信息,比如位图 的宽度,高度和位图使用的颜色数。再后面是颜色表,它可能包含了2 个或更多的RGBQUAD 结构。最后面是位图图象的数据。

    VC下8、16、24、32位位图的数据解析与显示

    构建VC++6.0MFC基本对话框图片显示程序,调试通过VC++6.0显示多种位数BMP格式位图。

    VC列表框显示位图

    在列表框加载位图,动态更新位图大小,根据列表框数据的多少,加入滚动条

    vc源码_位图文件读取显示

    这份代码只是演示了如何加载位图文件(不是位图资源)并显示出来——这,只是针对网上对位图文件加载含糊地解说而已! <br>我的资源下载不需要积分,但如果你觉得对你有用,那就帮顶一下吧!@^-^@

    VC BMP位图实验报告

    VC6.0下bmp位图的读取与显示 一、 实验目的: 1、 掌握windows BMP格式位图文件的基本格式。 2、 会使用VC++读取图像数据并显示。 二、实验内容: 1、 在VC6.0环境下,生成MFC应用程序框架。 2、 在已生成的应用程序...

    VC++6.0 打开位图文件源代码 BMP图像数据的读取与显示

    VISUAL C++ 6.0 数字图像编码 图像数据的读取与显示 可直接运行 并附源代码

    C语言读取BMP位图数据

    运行环境:VC60 例程只支持512×512的位图(里面的数据数组为512*512),但程序可显示位图的完整信息,读者可根据位图信息中的水平、垂直像素数动态设定位图数组,就可以读出任意大小的位图了。

    VC++图片控件(Picture Control)显示资源位图(BMP)、文件位图(BMP)、其它格式文件图片(JPG\PNG\BMP)实例

    资源中是一个vs2008sp1 IDE中VC++ MFC 图片控件(Picture Control)显示资源位图(BMP)、文件位图(BMP)、其它格式文件图片(JPG\PNG\BMP)的实例,可供参考。

    vc下读取txt文件中的多个脚底压力数据,并分别创建出bmp位图,还将总的压力求出,显示出总的压力分布图

    vc下读取txt文件中的多个脚底压力数据,并分别创建出bmp位图,还将总的压力求出,显示出总的压力分布图

    VC与Labview、Matlab编程论文资料[2].rar

    基于VC_实现的实时数据监控和显示方法.pdf 基于VC_实现的数字与字母识别.pdf 基于VC_开发虚拟数字键盘ActiveX控件.pdf 基于VC_的1553B总线接口仿真软件设计.pdf 基于VC_的3G无线上网卡主功能设计与实现.pdf 基于VC_...

    VC MAPX 经典教程

    VC MAPX 经典教程 chm 版 01vcgis控件显示 02vcmapx工具条 03全图工具 04图层控制控件实现 05经纬度显示 06测距工具 ...15在地图上显示位图文字 index 以上内容为本人开发 wince下 GIS 项目的总结.

    《学VC、编游戏》第一个示例:我来了源代码.rar

    2.引入了有关图形处理的数据结构:HBITMAP (设备相关位图)、HDC(设备场景).介绍了位图拷贝命令BitBlt()。 3.学习C 的功能函数的定义和使用方法。 4.学习调用图形的MFC方法LoadImage()和显示图形的方法 5.学习在...

    VC与Labview、Matlab编程论文资料

    基于VC_实现的实时数据监控和显示方法.pdf 基于VC_实现的数字与字母识别.pdf 基于VC_开发虚拟数字键盘ActiveX控件.pdf 基于VC_的1553B总线接口仿真软件设计.pdf 基于VC_的3G无线上网卡主功能设计与实现.pdf 基于VC_...

    VC环境下多波形显示ActiveX控件开发

    为了对工业控制类软件中采集的大量数据进行图形化显示,采用Visual C++设计并实现了一个可用于多 个波形显示的ActiveX 控件。该控件采用位图双缓冲机制,避免了图像闪烁。显示图数量、前景色、背景色及线型均 可设;...

    VC与Labview、Matlab编程论文资料[4].rar

    基于VC_实现的实时数据监控和显示方法.pdf 基于VC_实现的数字与字母识别.pdf 基于VC_开发虚拟数字键盘ActiveX控件.pdf 基于VC_的1553B总线接口仿真软件设计.pdf 基于VC_的3G无线上网卡主功能设计与实现.pdf 基于VC_...

    学VC编游戏第一程序:我来了源代码

    引入了有关图形处理的数据结构:HBITMAP (设备相关位图)、HDC(设备场景).介绍了位图拷贝命令BitBlt()。  3.学习C++的功能函数的定义和使用方法。  4.学习调用图形的MFC方法LoadImage()和显示图形的方法  5....

    VC特效制作100例

    实例8 多视图窗口数据显示 第3章 实现microsoft风格 实例9 visual studio风格的窗口 实例10 internetexplorer4. 0风格的窗口 实例11 outlook风格的窗口 实例12 状态栏中的任务栏 第4章 超文本界面 实例13 ...

    VC6风格界面

    ...................\Visual C++中实现对图像数据的读取显示.doc ...................\Visual C++中的图形特技.doc ...................\Visual C++模态对话框消息处理机制的分析.doc ...................\...

    VC 编程实例

    实例081 多级数据库树状结构数据显示 129 实例082 节点拖动功能的树控件 131 实例083 带复选功能的树状结构 134 实例084 三态效果树控件 135 实例085 修改树控件节点连线颜色 137 实例086 位图背景树控件 138 实例...

Global site tag (gtag.js) - Google Analytics