各位大侠:
    我做了一个在Picture控件中显示图片的小例子,我的工程是基于对话框的,图片显示也是正常的,但是我移动对话框图片就会一闪一闪的,可能是在动态加载,这个虽然不爽但是还是可以接受,但是对话框中的两个按钮却因为图片的动态加载而显示不出来了,只有到按钮的位置去点击一下才会出现。我改怎么解决这个问题,我只要达到当对话框移动时按钮不消失,至于图片的一闪一闪能解决最好。谢谢
    下面是我在Paint中的图片显示代码:    CWnd *pWnd = GetDlgItem(IDC_PIC1);
CRect rect;
pWnd->GetClientRect(&rect);
CDC *pDC = pWnd->GetDC();

IStream *pStm; 
CFileStatus fstatus; 
CFile file; 
LONG cb; 
IPicture *pPic;
CString m_sPath = "F:\\Sunset.jpg";

if (file.Open(m_sPath,CFile::modeRead)&&file.GetStatus(m_sPath,fstatus)&& ((cb = fstatus.m_size) != -1)) 

HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, cb); 
LPVOID pvData = NULL; 
if (hGlobal != NULL) 

if ((pvData = GlobalLock(hGlobal)) != NULL) 

file.ReadHuge(pvData, cb); 
GlobalUnlock(hGlobal); 
CreateStreamOnHGlobal(hGlobal, TRUE, &pStm); 




if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPic))) 

OLE_XSIZE_HIMETRIC hmWidth; 
OLE_YSIZE_HIMETRIC hmHeight; 
pPic->get_Width(&hmWidth); 
pPic->get_Height(&hmHeight); 
// double fX,fY; 
// fX = (double)pDC->GetDeviceCaps(HORZRES)*(double)hmWidth/((double)pDC->GetDeviceCaps(HORZSIZE)*100.0); 
//     fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->GetDeviceCaps(VERTSIZE)*100.0); 
// if(FAILED(pPic->Render(*pDC,0,0,(DWORD)fX/2,(DWORD)fY/2,0,hmHeight,hmWidth,-hmHeight,NULL))) 
if(FAILED(pPic->Render(*pDC,0,0,rect.Width(),rect.Height(),0,hmHeight,hmWidth,-hmHeight,NULL))) 
AfxMessageBox("渲染图像失败!"); 
pPic->Release(); 

else 
AfxMessageBox("从流中装载图像失败!");