【1】请问如何让这个窗体读取根目录下的bmp文件并显示到该窗体的picture框中
(条件是0.2秒读一次)
【2】窗体中有一副400×300的图片,请问如何点击一个按钮实现将该图片的中间例如从x=100,y=100象素开始,向右下角的【长=250】【高=100】的图片截取并保存成根目录下的一个bmp文件??
┌─────────────┐
│                          │
│    ┌─────────┐│
│    │                  ││
│    │       B图        ││
│    │                  ││
│    └─────────┘│
│                          │
│             A图          │
└─────────────┘

解决方案 »

  1.   

    1。用LoadIamge(..)把图像加载进来,在OnPaint()函数里用BitBlt(..)显示出来
    2。GZ
      

  2.   

    图象读取和显示同楼上,至于第2个问题,你只要对图象数据(矩阵)做相应的截取,然后再保存到bmp格式中去,总之你得先熟悉bmp文件格式哦.
    愿意帮忙:QQ:22715859
      

  3.   

    void CBmpView::OnFileOpen() 
    {
    CBmpDoc* pDoc = GetDocument();
    BYTE * pBuffer,* temp;
    CFile  bmp;
    bmp.Open ("*.bmp",CFile::modeRead)
        bmp.Read (&(pDoc->bmpHeader_Source),14);
    bmp.Read (&(pDoc->infoHeader_Source),40);
    bmp.Seek(pDoc->bmpHeader_Source.bfOffBits ,CFile::begin);
    pBuffer  = new BYTE[pDoc->bmpHeader_Source .bfSize - pDoc->bmpHeader_Source .bfOffBits ];
       bmp.Read (pBuffer,
          pDoc->bmpHeader_Source .bfSize - pDoc->bmpHeader_Source .bfOffBits );
    temp = pBuffer;
    bmp.Close (); bmpInfo.bmiHeader = pDoc->infoHeader_Source ;
    CClientDC dc(this);/////建立客户区
    int x ,y;
    int r,g,b;
    for(y=239 ;y>=0;y--)
    for( x = 0;x<320;x++)
    {   
    r = * temp;
    g = * (temp + 1);
    b = * (temp + 2);
    temp = temp + 3;
    pDoc->bmpRGB [x][y][0] = r;
    pDoc->bmpRGB [x][y][1] = g;
    pDoc->bmpRGB [x][y][2] = b;
    pDoc->bmpSource [x][y] = (r+ g+ b)/3;
     dc.SetPixel (x+100,y+100,
              RGB(pDoc->bmpRGB [x][y][0],
          pDoc->bmpRGB [x][y][1],
      pDoc->bmpRGB [x][y][2]));

    }
    }第二个问题只需对temp截取就可。