如下代码在CEdit编辑框内怎么显示不了位图啊,求高手帮帮忙!m_ctrlrx是CEdit类对象,和m_pBitmap一起是对话框类的成员变量
    CDC* pDC=m_ctrlrx.GetDC();
    m_pBitmap.LoadBitmap(IDB_BITMAP1); 

    BITMAP   bm; 
    m_pBitmap.GetBitmap(&bm); 
    int   nWidth=bm.bmWidth,nHeight=bm.bmHeight; 
    CDC   MemDC; 
    MemDC.CreateCompatibleDC(pDC); 
    CBitmap*   oldBmp   =   pDC-> SelectObject(&m_pBitmap);
    pDC->SetStretchBltMode(HALFTONE);
int i=pDC-> BitBlt(0,0,nWidth-1,nHeight,&MemDC,0,0,SRCCOPY);    pDC-> SelectObject(oldBmp);

解决方案 »

  1.   

    重写CEdit类,在CEdit的派生类OnPaint中贴图
      

  2.   

    DC和Bitmap是绑定的,你把Bitmap换了,画了图,又换回去了,等于没有画...CBitmap* oldBmp = pDC-> SelectObject(&m_pBitmap);
    pDC-> SelectObject(oldBmp);
    这两句能让你中间所有的操作都等于没做,你试试MemDC.SelectObject(&m_pBitmap);
      

  3.   

    楼上正解啊!!果然厉害,可惜小弟没分送上,谢谢了啊,学的不好,刚开始学mfc,不懂的太多啦~~