RT,小弟想写一个图片的显示的程序,但是小弟接触MFC时日尚浅,求各位好心人能够指点一下,要显示的文件名为1.bmp,绝对路径为"C:\Documents and Settings\1.bmp",如何获得我想要的图片的长,宽?
求赐教。

解决方案 »

  1.   

    加载到bitmap里面,获取属性就可以了,可以看看msdn这个类的介绍
      

  2.   

    CBitmap mp;
    mp.loadbitmap(id);
    bitmap bmp;
    bmp.getbitmap(&mp);
    就可以从bmp里面获取相关属性了
      

  3.   

    我调用了,但是在
    mp中无法返回值啊? mp.bmHeight,mp.bmWidth;都无法返回值。
    编译还行,但是如果运行就会死掉。
      

  4.   

    CBitmap bitmap;
    bitmap.LoadBitmap(file);
    BITMAP bm;
    // bitmap.GetObject(sizeof(BITMAP),&bm);
    bitmap.GetBitmap(&bm);
    int m = bm.bmHeight;
    int n = bm.bmWidth;
    我是这么写的,不知道对不对? 运行一到
    int m = bm.bmHeight;
    这一行就死掉了。编译没有问题。
      

  5.   

    这个加载没错,但是加载之后我们还需要显示,这里调用下GDI的bitblt,或者stretchblt就可以再界面上画图了
      

  6.   

    看下这里,可能有你需要的http://bbs.csdn.net/topics/254704
      

  7.   

    问题已解决,用的如下方法,在网上找的:
    #include <stdio.h> 
    #include <malloc.h> 
    #include <stdlib.h> 
    #include <iostream> 
    using namespace std; 
    /*位图信息头BITMAPINFOHEADER,这个结构的长度是固定的,为40个字节其定义如下:*/ 
    typedef struct tagBITMAPINFOHEADER 

     unsigned long biSize; /*指定这个结构的长度,为40*/ 
     long biWidth; /*指定图象的宽度,单位是象素*/ 
     long biHeight; /*指定图象的高度,单位是象素*/ 
     unsigned short biPlanes; /*必须是1,不用考虑*/ 
     unsigned short biBitCount; /*指定表示颜色时要用到的位数,常用的值为1(黑白二色图),4(16色图),8(256色),24(真彩色图)*/ 
     unsigned long biCompression; /*指定位图是否压缩,有效的值为BI_RGB,BI_RLE8,BI_RLE4,BI_BITFIELDS*/ 
     unsigned long biSizeImage; /*指定实际的位图数据占用的字节数*/ 
     long biXpolsPerMeter; /*指定目标设备的水平分辨率,单位是每米的象素个数。*/ 
     long biYpelsPerMeter; /*指定目标设备的垂直分辨率,单位同上。*/ 
     unsigned long biClrUsed; /*指定本图象实际用到的颜色数,如果该值为零,则用到的颜色数为2的biBitCount次方。*/ 
     unsigned long biClrImportant; /*指定本图象中重要的颜色数,如果该值为零,则认为所有的颜色都是重要的。*/ 
    }BITMAPINFOHEADER; void main() 

     BITMAPINFOHEADER bitmapinfoheader; 
     FILE * stream; 
     memset(&bitmapinfoheader,0,sizeof(BITMAPINFOHEADER)); 
     stream=fopen("E:\\3.bmp","r"); 
     fseek(stream,14,1); 
     fread((char*)&bitmapinfoheader,sizeof(BITMAPINFOHEADER),1,stream); 
     fclose(stream); 
     cout<<bitmapinfoheader.biHeight<<endl; 
     cout<<bitmapinfoheader.biWidth<<endl; 
    } 希望能做参考。