MFC-GetObject获取对象信息

发布时间 2023-04-16 20:49:15作者: 天子骄龙

获取位图信息

    BITMAP bm;
    HBITMAP   hBmp = NULL;
    CString str = _T("D:\\1.bmp");
    hBmp = (HBITMAP)::LoadImage(NULL, str, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
    int n=::GetObject(hBmp, sizeof(BITMAP), (PSTR)&bm);//获取对象信息
    /*
    参数1:HGDIOBJ hgdiobj  图形对象的句柄
    参数2:int cbBuffer     将写入到缓冲区中的图形对象信息的字节数
    参数3:LPVOID lpvObject  指向接收图形对象信息的缓冲区的指针
    返回值:当函数执行成功且参数lpvObject为NULL时,返回值是保存获取的信息的缓冲区需要的字节数
           当函数执行成功且参数lpvObject是有效地指针时,返回值是存储到缓冲区中的数据的字节数
           当函数执行失败时,返回值是0
    */

    int nWidth = bm.bmWidth;//位图宽度
    int nHeight = bm.bmHeight;//位图高度
    
    str.Format(_T("nWidth=%d\r\n"), nWidth);
    ::OutputDebugString(str);
    str.Format(_T("nHeight=%d\r\n"), nHeight);
    ::OutputDebugString(str);