解决方案 »

  1.   

    "
    CBitmap m_bitmap;
    //m_bitmap.LoadBitmap (IDB_BITMAP1);//成功CDC *ptrDC = GetDC();//获取当前设备DC
    m_dc.CreateCompatibleDC (ptrDC);//将自己定义的DC与设备DC兼容
    m_dc.SelectObject(&m_Bitmap);"ReadBitmap()//读位图
    在哪里?
      

  2.   

    BOOL CDrawOnBitmapView::ReadBitmap()//读位图
    {
    h_Bitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(),BitmapFilePath,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
    GetObject(h_Bitmap,sizeof(m_Bitmap),&m_Bitmap);
    return true;
    }
    在这里。
      

  3.   

    我是说 ReadBitmap()//读位图
    在哪里被 调用?
      

  4.   

    抱歉,写的不清楚。在
    void CDrawOnBitmapView::OnOpen() 
    {
    // TODO: Add your command handler code here
    CBitmapOpenDialog dlg;
    dlg.m_nStrFilePath = BitmapFilePath;
    if(dlg.DoModal () == IDOK)
    {
    BitmapFilePath = dlg.m_nStrFilePath;
    UpdateData(false);
    ReadBitmap();
    }

    }
    刚刚我自己改了一下,换了一句代码就可以了,也麻烦您帮忙解释一下好吧。
    BOOL CDrawOnBitmapView::ReadBitmap()
    {
    h_Bitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(),BitmapFilePath,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
    if(m_Bitmap.m_hObject)
    m_Bitmap.DeleteObject ();
    m_Bitmap.Attach (h_Bitmap);
    //::GetObject(h_Bitmap,sizeof(m_Bitmap),&m_Bitmap);
    return true;
    }
    这两个函数分别的作用是什么呢?
      

  5.   

    如果用;
    //::GetObject(h_Bitmap,sizeof(m_Bitmap),&m_Bitmap);
    也要先:
    if(m_Bitmap.m_hObject) m_Bitmap.DeleteObject ();