zoukankan      html  css  js  c++  java
  • WM下的GDI+(续)

    上篇文章标题有误,应该是WM下的

    上次我试验了我的劳动成果,证明是不行的。不过这里有人给出一个可以实用的版本。我来说下我的试用成果。

    一、安装

    下载后,将文件复制到相应的文件夹中,inlcude文件我是到Windows Mobile 6 SDK\PocketPC\Include\Armv4i\GDI+(我只试用了WM^下)下,这样出问题好处理。lib文件到\Windows Mobile 6 SDK\PocketPC\Lib\Armv4i下。在引用路径也要加上这些路径。

    二、准备

    首先在头文件中加入

    include <gdiplus.h>
    using   namespace   Gdiplus; 

    #pragma   comment   (lib,   "LibGDIPlus.lib")

    在Oncreat事件中,调用

    GdiplusStartupInput gdiplusStartupInput;
     ULONG_PTR           gdiplusToken;
     GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

    进行初始化。在Ondestory事件中调用

    GdiplusShutdown(gdiplusToken);

    进行结束。

    可以将gdiplusToken设为公用变量,这样可以不出问题。但初始化不能在DLL中进行,不知道是为什么 。

    三、使用

    wince下的GDI+有好多功能没有实现:

    • No support to load image file directly from path
      Use IStream interface to load file data, use the stream interface version to create bitmap. Same goes for resource.
    • Windows Mobile doesn't support the following features:
      GDI Path (GDI path functions are not exported)
      Enhanced Meta file

    前一个我认为可这样解决一是使用ISTREAM但比较复杂,二是使用GDI

    m_bt=new Bitmap(::SHLoadImageFile(_T("\\Program Files\\aaa.png")),0);但支持范围有限。

    后面的我没试过。

    在试用中还发现些问题,比较重要的Drawimgae有18函数只有下面6个实现了

             Graphics::DrawImage(Image*,RectF&)
             Graphics::DrawImage(Image*,INT,INT,INT,INT)
     Graphics::DrawImage(Image*,PointF*,INT,REAL,REAL,REAL,REAL,Unit,ImageAttributes*,DrawImageAbort,VOID*)
            Graphics::DrawImage(Image*,REAL,REAL,REAL,REAL)
            Graphics::DrawImage(Image*,Rect&)   Graphics::DrawImage(Image*,RectF&,REAL,REAL,REAL,REAL,Unit,ImageAttributes*,DrawImageAbort,VOID*)
    这两个干脆没有原型

    Graphics::DrawImage(Image*,RectF&,RectF&,Unit,ImageAttributes*)
    Graphics::DrawImage(Image*,RectF*,Matrix*,Effect*,ImageAttributes*,Unit*)
    不过主要功能还是能实现了。还有就是RotateTransform也不支持,这个就比较苦恼了。

  • 相关阅读:
    JSP基础
    线程控制
    多线程简述
    Servlet生命周期
    同步代码块和同步方法有什么区别?
    java.sql.Date和java.util.Date的区别
    Java自学指南五、编码工具
    基本类型和包装类的区别?
    什么是包装类?为什么要有包装类?基本类型与包装类如何转换?
    什么是Java的垃圾回收机制?
  • 原文地址:https://www.cnblogs.com/zcmky/p/1585102.html
Copyright © 2011-2022 走看看