如何用picture静态图像显示我用“文件打开”中显示的图像?
   这里有部分代码。只是我对其中的一些变量看不懂:
BOOL CYangDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
hbmp=(HITMAP)LoadImage(AfxGetInstanceHandle(),lpszPathName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
}
 void CYangView::OnInitialUpdate()
HDC dc;
dc:=GetDc(null);
hdc=CreateCompatibleDC(dc);
doc=GetDoCument();
SelectObject(hdc,doc->hbmp);
}
void CYangView::OnPaint()
doc=GetDoCument();
dc.BitBlt(15,45,doc->bitmap.bmWidth,doc->bitmap.bmHeight,CDC::FromHandld(hdc),0,0,SRCCOPY);
令我疑惑的是:如何将bitmap和这个静态图像联系起来?是不是我将picture的type设置为:BITMAP,那对bitmap怎么定义呢?bitmap 是不是在文档类中用GetObject(hbmp,sizeof(BITMAP),&bitmap)得到的呢?
  请各位大侠帮忙!

解决方案 »

  1.   

    不用你搞的这么复杂, 直接将图片加载进来,然后设置到Picture 控件里就行了,它自己知道怎么显示.不用你操心HBITMAP hBmp=(HITMAP)LoadImage(AfxGetInstanceHandle(),lpszPathName,
                           IMAGE_BITMAP,0,0,LR_LOADFROMFILE);((CStatic*)GetDlgItem(IDC_PIC))->SetBitmap(hBmp);
      

  2.   

    ((CStatic*)GetDlgItem(IDC_PIC))->SetBitmap(hBmp);是在cview中显示吗?是在哪个函数里呢?
      

  3.   

    1。我是要在recordview的情况下,显示DIB位图,要不要在中间插入picture控件或其他?还是直接用stretchDIBits通过坐标形式来控制它的显示位置? 2。试验了一下:
    HBITMAP hBmp=(HITMAP)LoadImage(AfxGetInstanceHandle(),lpszPathName,
                           IMAGE_BITMAP,0,0,LR_LOADFROMFILE);((CStatic*)GetDlgItem(IDC_PIC))->SetBitmap(hBmp);(我是在view::onDraw())中加入这个函数的。可是结果说CWnd类没有这个SetBitmap这个函数。不知道如果使用这个函数,还缺少什么条件?
      有劳大驾了