wince 位图的使用

操作位图的基本步骤:

*创建位图句柄

*加载位图对象

*创建内存设备描述对象,将位图选入内存设备描述对象

*使用绘图函数进行图形绘制

*删除位图句柄

创建位图句柄并且加载位图对象:

*位图句柄

  HBITMAP hBmp

*BOOL LoadBitmap(

  HINSTANCE hlnstance,

  LPCTSTR lpBitmapName);

*位图资源有两种:

 系统内置资源

应用程序位图资源

  HBITMAP CreateBitmap(

    int nWidth,  //指定位图宽度

    int nHeight,     //指定位图高度

    UINT cPlanes,   //该设备使用的颜色位数目,在CE环境中为1

    UINT cBitsPeral, //指定每个像素所用的位数,一般都是2的n次方

    CONST VOID *lpBits)  //指向颜色数据数组指针

举例如下图:

hBmp = CreatBitmap(20,5,1,4,bits);

HBITMAP SHLoadDlBitmap(LPCTSTR szFileName);

位图的显示步骤:

*创建内存设备环境

*将位图句柄选入设备内存环境

*调用传送函数在设备上显示位图

内存设备环境:

*内存设备环境的作用:

    提高存取速度,并且使位图的设置和设备环境的设置进行匹配,Windows CE 首先将位         图装入到内存设备环境中,然后从内存中赋值到设备环境。

*HDC CreateCompatibleDC(HDC hdc);

*位图选入设备对象使用:SelectObject()函数

传送数据块的函数:

  BOOL BitBlt(

    HDC hdcDest,    //目标设备环境的句柄

    int nXDest,int nYDest,    //目标矩形区域左上角的 逻辑坐标

    int nWidth,int nHeight,    //目标矩形区域的宽度和高度

    HDC hdcSrc,    //源绘图环境的句柄

    int nXSrc,int nYSrc,    //源绘图左上角的逻辑坐标

    DWORD dwRop);    //设定执行的光栅操作代码

*SRCCOPY 将源位图拷贝到目标位图

  BOOL StretchBit(

    HDC hdcDest,

    int nXOriginDest,int nYOriginDest,

    int nWidthDest,int nHeightDest,

    HDC hdcSrc,

    int nXOriginSrc,int nYOriginSrc,

    int nWidthSrc,int nHeightSrc,

    UINT crTransparent);

时间: 2024-10-14 17:37:31

wince 位图的使用的相关文章

WINCE下由HBITMAP获取位图RGB颜色数据

以下代码未经过测试,只是编译没有问题,以前同事问到这个,所以才有下面代码: class CBitmapBits { public: CBitmapBits() : m_pBitsBuf(NULL) , m_dwWidth(0) , m_dwHeight(0) { } ~CBitmapBits() { Destroy(); } // 释放位图数据 void Destroy() { if (m_pBitsBuf != NULL) { delete[] m_pBitsBuf; m_pBitsBuf =

opengl 在winCE系统的使用

WINCE系统上开发OpenGL程序需具备以下条件: 1. 处理器的支持,嵌入式处理器需支持3D加速渲染(测试使用的是Telichips 8901): 2. WINCE内核的支持,定制内核时需添加OpenGL ES相关组件. 以下是具体的参考代码: [cpp] view plain copy /******************************************************************** filename:   WinceOpenGLDemo.cpp c

wince 6.0下UDP通信需要注意MAC地址

最近在wince6.0下进行网络通信,在ARM下使用UDP通信协议.当然了,首先按照自己的使用配置wince中的IP,修改注册表即可. 我是wince的菜鸟,但是绝不是使用UDP通信的新手,在windows下跑过多次的UDP发送端和接收端,在wince下却怎么都不能像在windows下使用那么顺利,出现了不可理解的现象: (1)wince和wince相互通信,发送成功了,可是接收端却没有收到数据包: (2)wince和windows相互通信,发送和接收都正常: (3)wince和windows互

一个简单的WInCE(转载百度)

VS2008中开发智能设备程序的一些总结收藏1 结合前几日开发的<全国大坝基础数据库采集端>中的PDA程序开发过程,对VS2008开发智能设备上的程序做个小总结. 1         程序结构 程序中包括四个部分: 1. 系统配置 这个部分用来配置系统中的相关参数,参数包括数据库信息和串口的配置信息.这部分的主要技术是XML文件的读取和写入. 2. 数据下载 从数据库中下载数据到PDA,PDA上的保存也是使用数据库.这部分的技术主要是PDA设备上的移动数据库开发和使及用PDA连接PC数据库 3

将位图导入为ArcGIS面要素

本文根据笔者经验,介绍一种从位图图像导入ArcGIS称为要素的方法.这种方法适用于从现有出版物图片中获取地理信息的情况. 首先要说明的是,从位图导入要素是非常非常不精确的方式,如果有其它数据来源,那么就不应该采用此方法. 另外,如果位图包含的内容相对简单,区域结构紧凑不零散,则可以考虑ArcMap绘制地图,而不用此方法. 为让表述更直观,笔者从百度卫星地图截取了 辽宁省康平县 西泡子水库附近的区域,作为操作的说明. 00_orign 1. 制作灰度图 为便于在ArcMap中处理,将原始图像的色彩

WPF Canvas转换为位图 (RenderTargetBitmap)

使用 RenderTargetBitmap 的注意事项: 要渲染的Canvas元素要放在Border元素内,并且此Border元素不能设置边框宽度(BorderThickness),不然生成的位图会出现错误.如果需要边框效果,可再加一层Border. 例: cs: RenderTargetBitmap bmp = new RenderTargetBitmap((int)canvas.ActualWidth, (int)canvas.ActualHeight, 96, 96, PixelForma

【Bitmap Index】B-Tree索引与Bitmap位图索引的锁代价比较研究

通过以下实验,来验证Bitmap位图索引较之普通的B-Tree索引锁的“高昂代价”.位图索引会带来“位图段级锁”,实际使用过程一定要充分了解不同索引带来的锁代价情况. 1.为比较区别,创建两种索引类型的测试表1)在表t_bitmap上创建位图索引[email protected]> create table t_bitmap (id number(10), name varchar2(10),sex varchar2(1)); Table created. [email protected]>

Gprinter光栅位图点阵数据解析工具

最近参与的项目有一个需求,解析佳博热敏打印机的光栅位图点阵数据并保存为图片文件.数据是通过Bus Hound抓取的,如下图所示. 其中1b 40为初始化打印机的指令,对应的ASCII码为ESC @,1b 4a 18为打印并走纸的指令,对应的ASCII码为ESC J,1d 76 30为打印光栅位图的指令,对应的ASCII码为GS v 0,其后紧跟光栅位图模式(0x00).水平方向位图字节数(0x0036)和垂直方向位图点数(0x0018),后面则为本帧的位图数据(0x36*0x18=1296字节)

WinCE及Windows软件开发相关书籍转让

从开始做WinCE开发到现在已经十多年了,最初可以学习和参考的资料并不多,那时候还没有Stack Overflow,Google也还可以正常访问.遇到问题时,一般都在Google Groups的microsoft.public.windowsce.embedded里提问,有很多热心的朋友,特别是微软的eMVP会帮忙解答或者提供一些思路.另外,也经常看一些博客,微软官方的和一些个人开发者的.这些都让我受益匪浅,也促使我后来在CSDN的WinCE论坛里的活跃并坚持在博客园里写一些博客.盖茨曾在199