zoukankan      html  css  js  c++  java
  • VFP 图形文件与剪切板互换的API解决方法

    在 VFP 中,凡遇图形处理,大多数情况下,都会涉及到图形文件与剪切板互换的情况。下面给出利用 API 解决的方法。这是原来从网上摘下来的,版权归原作者。
    基本处理的代码如下,你可以将其应用到你的代码中。

    DECLARE INTEGER OpenClipboard               IN User32 INTEGER
    DECLARE INTEGER CloseClipboard              IN User32
    DECLARE INTEGER EmptyClipboard              IN User32
    DECLARE INTEGER SetClipboardData            IN User32 INTEGER,INTEGER
    DECLARE INTEGER LoadImage                   IN WIN32API INTEGER,String,INTEGER,INTEGER,INTEGER,INTEGER
    DECLARE INTEGER GetClipboardData            IN User32 INTEGER
    DECLARE INTEGER GdipCreateBitmapFromHBITMAP IN GdiPlus.dll INTEGER, INTEGER, INTEGER @
    DECLARE INTEGER GdipSaveImageToFile         IN GdiPlus.dll INTEGER,String,String @,String @
    DECLARE Long    GdipCreateHBITMAPFromBitmap IN GDIPLUS.DLL Long nativeImage, Long @, Long
    DECLARE Long    GdipCreateBitmapFromFile    IN GDIPLUS.DLL String FileName, Long @nBitmap
    DECLARE Long    CopyImage                   IN WIN32API Long hImage, Long, Long, Long , Long

    #Define CF_BITMAP 2
    #Define CF_DIB 8
    #Define IMAGE_BITMAP 0
    #Define LR_LOADFROMFILE 16

    *1.将图形文件保存到剪切板
    nBitmap=0
    hbm=0
    imagefile='图形文件名'
    GdipCreateBitmapFromFile(STRCONV(imagefile+0h00,5),@nBitmap)
    GdipCreateHBITMAPFromBitmap(nBitmap,@hbm,0)
    lhBmp = CopyImage(hbm, 0, 0, 0, 0)
    IF OpenClipboard(0)!= 0
       EmptyClipboard()
       SetClipboardData(CF_BITMAP, lhBmp)
       CloseClipboard()
    ENDIF

    *2.将剪切板图形保存到本地
    OpenClipboard(0)
    hBitmap = GetClipboardData(CF_BITMAP)
    hDib = GetClipboardData(CF_DIB)
    CloseClipboard()
    uBitmap=0
    GdipCreateBitmapFromHBITMAP(hBitmap,2,@uBitmap)
    lcOutputFile=STRCONV('C:\_Temp1.jpg'+CHR(0),5)
    *!* lqEncoderClsID_BMP=0h00F47C55041AD3119A730000F81EF32E &&BMP格式
    lqEncoderClsID_JPG=0h01F47C55041AD3119A730000F81EF32E &&JPG格式
    *!* lqEncoderClsID_GIF=0h02F47C55041AD3119A730000F81EF32E &&GIF格式
    *!* lqEncoderClsID_TIF=0h05F47C55041AD3119A730000F81EF32E &&TIF格式
    *!* lqEncoderClsID_PNG=0h06F47C55041AD3119A730000F81EF32E &&PNG格式
    GdipSaveImageToFile(uBitmap,lcOutputFile,lqEncoderClsID_JPG,NULL)

  • 相关阅读:
    SpringBoot学习:整合shiro(身份认证和权限认证),使用EhCache缓存
    帝国备份王出错
    spring boot整合mybatis+mybatis-plus
    Druid连接池简介和配置
    thinkphp生成的验证码不显示问题解决
    分布式文件系统-FastDFS
    Spring Security OAuth2 Demo
    spring cloud-给Eureka Server加上安全的用户认证
    spring cloud 报错Error creating bean with name 'hystrixCommandAspect' ,解决方案
    分布式唯一ID极简教程
  • 原文地址:https://www.cnblogs.com/hnllhq/p/12287595.html
Copyright © 2011-2022 走看看