通过CFileDialog打开一副CBitmap,
在客户区显示出bitmap,
以前在vb中直接用图像控件,
在vc中该怎样做呢?
麻烦大家指点下具体代码,谢谢

解决方案 »

  1.   

    创建内存DC,选入位图,BitBlt,相关代码太多了,劳驾搜一搜,一般Windows编程书上都有。
      

  2.   

    谢谢了哈刚才弄清了
    但主要是杂把选择的那个.bmp图像放入CBitmap对象中呢?LoadBitmap()不是要ID才行啊
    谢谢
      

  3.   

    从文件读取位图用LoadImage,然后可以Attach给CBitmap对象,或者直接使用HBITMAP句柄。
      

  4.   

            CFileDialog fileDlg(TRUE);
    if(IDOK==fileDlg.DoModal())
    {
    CDC dcCompatible;
    CClientDC dc(this);
    dcCompatible.CreateCompatibleDC(&dc);
    HBITMAP hbitmap;
    CBitmap bitmap;
    hbitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),fileDlg.GetPathName(),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
    ///////////////  不太清楚杂转换呢,是在这吗?杂才能Attach给CBitmap对象呢??谢谢 dcCompatible.SelectObject(&bitmap);
    dc.BitBlt(0,0,1000,700,&dcCompatible,0,0,SRCCOPY);
    }
      

  5.   

    你这样的方法,后面一刷新就没有了。应该把CBitmap对象作为类的成员变量,然后加载位图,刷新,绘制位图的代码放到视图类的OnDraw或者OnPaint中。
    还有你的代码hbitmap和bitmap没有任何联系,或者说bitmap没有加载位图,应该Attach一下。
    hbitmap = ...
    bitmap.Attach(hbitmap);
    ...