也就是说获得它宽和高!

解决方案 »

  1.   

    BOOL GetBitmapDimensionEx(
      HBITMAP hBitmap,     // handle to bitmap
      LPSIZE lpDimension   // address of structure receiving dimensions
    );
      

  2.   

    typedef struct tagBITMAPINFOHEADER{
       DWORD  biSize;   // 本结构所占用字节数
       LONGbiWidth;  // 位图的宽度,以像素为单位
       LONGbiHeight; // 位图的高度,以像素为单位
       WORD   biPlanes; // 目标设备的级别,必须为1
       WORD   biBitCount// 每个像素所需的位数,必须是1(双色),
      // 4(16色),8(256色)或24(真彩色)之一
       DWORD  biCompression;   // 位图压缩类型,必须是 0(不压缩),
      // 1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一
       DWORD  biSizeImage; // 位图的大小,以字节为单位
       LONGbiXPelsPerMeter; // 位图水平分辨率,每米像素数
       LONGbiYPelsPerMeter;  // 位图垂直分辨率,每米像素数
       DWORD  biClrUsed;// 位图实际使用的颜色表中的颜色数
       DWORD  biClrImportant;// 位图显示过程中重要的颜色数
    } BITMAPINFOHEADER;
      

  3.   

    SIZE size;
    GetBitmapDimensionEx(hBmp, &size);
    然后size.cx就是宽度,size.cy就是高度了
      

  4.   

    GetBitmapDimensionEx的用法,第一个是bitmap的句柄(用LoadBitmap得到),第二个是一个SIZE结构的指针,用来返回大小。而BITMAPINFOHEADER是直接读bitmap文件(用CFile::Read就可以了)得到的。
      

  5.   

    BITMAPFILEHEADER bmpfileheader;
    BITMAPINFOHEADER bmpinfoheader;
    fstream bmpfile; bmpfile.open(filename, ios::in|ios::out|ios::binary);
    if(!bmpfile)
    {
         return -1;
    }
    else 
    {
         bmpfile.read((char *)&bmpfileheader, sizeof(bmpfileheader));
         if(bmpfileheader.bfType!=0x4D42)
             return -1;
         bmpfile.read((char *)&bmpinfoheader, sizeof(bmpinfoheader));
         ...
    }这样就得到这个结构了。
      

  6.   

    BITMAP bitmap;
    mybitmap.getobject(sizeof(BITMAP),&bitmap);//mybitmap已经连接了位图
    bitmap.bmheight;
    bitmap.bmweight;
    最简单
      

  7.   

    CBitmap nBitmap;
    bBitmap.LoadBitmap(/* 位图*/);
    BITMAP bitmap;
    nBitmap.GetBitmap(bitmap);
      

  8.   

    不好意思,应该是:CBitmap nBitmap;
    bBitmap.LoadBitmap(/* 位图*/);
    BITMAP bitmap;
    nBitmap.GetBitmap(&bitmap);
    bitmap.bmheight;// 高
    bitmap.bmweight;//宽