已经在一个视图里显示了一张图片,应该如何实现截取该图的部分并显示在一个新的视图(或者窗口里)?

解决方案 »

  1.   

    在新的视图的OnDraw里:
    CDC MemDC; //首先定义一个显示设备对象
    CBitmap MemBitmap;//定义一个位图对象
    //随后建立与屏幕显示兼容的内存显示设备
    MemDC.CreateCompatibleDC(pDC);
    //将位图选入到内存显示设备中
    //只有选入了位图的内存显示设备才有地方绘图,画到指定的位图上
    CBitmap Bitmap
    Bitmap.LoadBitmap 
    CBitmap *pOldBit=MemDC.SelectObject(&Bitmap);//将内存中的图拷贝到屏幕上进行显示
    x,y:为拷贝的左上角
    nWidth,nHeight:拷贝图的高宽
    pDC->BitBlt(0,0,nWidth,nHeight,&MemDC,x,y,SRCCOPY);
    //绘图完成后的清理
    MemBitmap.DeleteObject();
    MemDC.DeleteDC();
      

  2.   

    给主框架发WM_COMMAND消息,wParam参数给ID_FILE_NEW,lParam参数给0。
      

  3.   

    AfxGetApp()->PostThreadMessage(ID_FILE_NEW, 0, 0);
      

  4.   

    AfxGetMainWnd()->SendMessage(ID_FILE_NEW);或者
    AfxGetMainWnd()->PostMessage(ID_FILE_NEW);