文档详情

Windows Mobile 应用开发进阶.doc

发布:2019-12-20约2.73万字共32页下载文档
文本预览下载声明
Windows Mobile 应用开发进阶 Wince手机应用开发 由于Wincd和Windows Mobile的应用程序都是windows应用程序,有很多共通的地方, 所以《Wince程序设计》是一本推荐阅读的书籍。以下整理了一位网友的 “我的手机开发”系列,省去总结Windows程序设计原理的部分,可以得出一些Wince应用开发实例。 位图背景透明 本节介绍如何在PocketPC下将位图透明以达到处理背景的目的。 首先要清楚几个概念: (1)DC:我们就形象的把他看做是系统提供给我们的画板。 (2)设备DC和内存DC:内存DC中的位图只有BitBlt到设备DC中才能显示图像。 (3)一个DC(包括设备DC和内存DC)可以创建多个内存DC,每个子内存DC都占据父DC的一块区域,相当于把一个大的画板分隔成一份份的,这样我们可以分别地操作各个子DC处理完了在把他们组装到一起,这就好比我们在做拼图。 ?(4)颜色的表示:我们的像素是用RGB表示的。其中白色RGB(255,255,255)及全1,黑色RGB(0,0,0)及全0. (5)由于位图是按块存储的,所以所有的位图都是方方正正的,不可能出现不规则形状的位图。 清楚了这几个概念我们可以来去除位图的背景了。我们要处理的是下面两张位图pic_1和pic_2. 我们要将pic_2的白色背景去除,把它贴到草地上,实现pic_3的效果。 背景去除分为以下几个步骤: (一)准备两张位图,一张背景位图,一张图像位图。 (二)创建两个内存DC,分别载入背景位图和要显示的图像位图。 ???????? hBackGroundDC = createCompatibleDC(MainDC); ???????? hPicDC = createCompatibleDC(MainDC); ???????? oldBackGroundBmp = selectObject(hBackGroundDC,backGroundBmp); ???????? oldPicBmp = selectObject(hPicDC,picBmp); (三)再创建两个内存DC,分别作为背景的遮罩层(遮罩位图),和图像的遮罩层(遮罩位图Pic_5)。 (四)将背景遮罩DC和背景DC进行或操作,图像遮罩DC和图像DC进行或操作,生成新的位图。 (五)将Pic_7和Pic_8进行与操作,得到去除了背景的位图。将最终的位图BitBlt到设备DC中现实。 Windows Mobile文件操作及字符集 文件操作 文件指针 FILE * pf; char buffer[255]; pf.open(Disk\\ruby.txt);//打开Disk下的ruby.txt fwrite(buffer,size,count,fp);//这样我们就可以将buffer中的count*size个字符写到fp所指//向的文件中了 fread(buffer,size,count,fp);//利用fread函数我们可以将fp中的count*size个字符写到//buffer中 fclose(pf);//注意操纵完文件指针一定要关闭 在这里,通过pf指针利用fwrite和fread对文件进行读写操作,都是针对字符串的,也就是char型的。所以要是我们想让他兼容Unicode格式下的宽字符,就要在操作之后,将字符转换为宽字符。具体转换方法我们下面再说。 这里我们可以看到通过pf指针利用fwrite和fread对文件进行读写操作,都是针对字符串的,他的好处是可以直接操作写入和读出文件的字符数目。而且我们可以通过fseek函数,方便的更改文件读写的起点。这在使用起来相当方便。而且它的写入函数可以写入const void * 类型。但是唯一的缺点就是它是针对字符串的,所以不能很方便地读写整行的数据。 文件流 ifstream in(Disk:\\ruby.txt);//以输入方式打开文件 ofstream out(Disk:\\ruby.txt);//以输出方式打开文件 inI Love You;//向文件写入字符串I Love You outi;//从文件输入一个整数值。 out.get(str1,127,A); //从文件中读取字符到字符串str1,当遇到字符A或读取了127个//字符时终止。 in.put(c);//注意这里只能put进一个char型 out.write(str1,strlen(str1));//把字符串str1指向的缓存写 num 个字符到文件中,值得注意//的是缓存的类型是 unsigned char * in.read((unsigned char*)buf,sizeof(n));//从文件中读取 num 个字符到 buf指
显示全部
相似文档