zoukankan      html  css  js  c++  java
  • GetObject 得 指定图形对象的信息

    GetObject

    该函数得到指定图形对象的信息,根据图形对象,函数把填充的 BITMAPDIBSECTIONLOGBRUSH,LOGFONT, 或 LOGPEN 结构体放入一个指定的缓冲区。

    原型:

    int GetObject(HGDIOBJ hgdiobj, int cbBuffer, LPVOID lpvObject); 

    参数:

    hgdiobj:[in] 图形对象句柄。 可以是a logical bitmap, a brush, a font, a palette, a pen, 或者调用CreateDIBSection生成的DIB。

    cbBuffer: [in] 指定将要写到缓冲中的信息的字节数

    lpvObject: [in] 缓冲指针,用以取回指定图形对象信息。 下表显示了由hgdiobj指定的信息类型和对应的缓冲区可接收的每种图形对象类型的。

     对象类型

     写入到 *lpvObject 中的数据

    HBITMAP 

    BITMAP

    HBITMAP ,从CreateDIBSection 中返回

    DIBSECTION ,如果cbBuffer 设置为 sizeof(DIBSECTION), 或者

    BITMAP, 如果 cbBuffer 设置为 sizeof(BITMAP) 

    HPALETTE 

    逻辑调色板入口数,以WORD类型计算

    HPEN 

    LOGPEN 

    HBRUSH 

    LOGBRUSH 

    HFONT 

    LOGFONT 

       
       如果lpvObject 为NULL,返回值为指定图形对象写到缓冲中的信息的字节数

       对Windows CE 1.0 and 1.01:

          ·HPALETTE 对象不支持

          ·GetObject 用于DIB片段时,总是返回BITMAP 

    返回值:

       如果函数调用成功,且lpvObject为一个有效指针,则返回值为贮存到缓冲区的字节数目;如果函数调用成功,且lprObject为Null,则返回值为需要容纳的贮存到缓冲区的信息字节数目。

       如果函数调用失败,则返回值为0。

       获取扩展错误信息,调用GetLastError.

    说明:

       lpvObject参数指向的缓冲区一定要足够大以接收图形对象的信息。

       如果hgdiobj标识一个由GreateDIBSection创建的位图,且指定的缓冲区足够大,则GetObject函数返回一个DIBSECTION结构。另外,DIBSECTION中的BITMAP结构中的bmBits元素含有一个指向位图位值的指针。

       如果hgdiobj标识了一个通过其他途径创建的位图,则GetObject只返回位图的宽、高和颜色格式信息,但位图位值指针为NULL。只有位图为DIB时才可以访问他们的每一位。

       如果hgdiobj标识了一个逻辑调色板,则GetObject检索一个2字节的整数,该整数指定调色板中的项数,函数不检索定义调色板的LOGPALETTE结构,为检索有关调色板项的信息,应用程序可以调用GetPaletteEntries函数。

    参考例子 :

    HBITMAP hbFile = SHLoadImageFile(path);
    BITMAP bmp;
    GetObject(hbFilesizeof(bmp), &bmp);
  • 相关阅读:
    Java实现AES加密
    spring定时任务详解(@Scheduled注解)
    springBoot 项目war包部署及改为war包后资源路径错误问题
    (转)如何在maven的pom.xml中添加本地jar包
    HttpClient MultipartEntityBuilder 上传文件
    Java BigDecimal详解
    mysq带条件的分页查询数据结果错误
    jstack生成的Thread Dump日志线程 分析
    jquery将表单序列化
    java jdk动态代理学习记录
  • 原文地址:https://www.cnblogs.com/xzlq/p/3116945.html
Copyright © 2011-2022 走看看