如题,,,高手帮忙指导下。

解决方案 »

  1.   


    CBitmap bmp;
    int x1,y1,x2,y2;
    CDC memdc;
    BITMAP bm;
    memdc.CreateCompatibleDC(NULL);
    bmp.m_hObject   =   (HBITMAP)LoadImage(NULL,"F:\\software\\19.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);    bmp.GetObject(sizeof(bm),&bm);
    memdc.SelectObject(bmp);
    pDC->StretchBlt(0,0,x2-x1,y2-y1,&memdc,x1,y1,x2-x1,y2-y1,SRCCOPY);你自己计算选中的区域位置就好了,代码我没调试过,可能有问题,但大致就是这样了
      

  2.   

    就是把那个截取的部分每次拖动后Mouseup事件里把它给画到dc上的新位置。可以用两个内存dc,一个保存你最初画的图片。 截取一块后把被截的那块给用白色填充。
    另一个保存截取部分图片;
    MouseUp时,先按第一个内存dc的内容重画整个dc;再把第二个内存dc的内容在拖放的位置画出来。