我在AboutDlg的OnInitDialog里面加载了一幅图片,然后在OnPaint里面把它用BitBlt显示出来,然后在AboutDlg的OnButton1里面执行了以下代码
CFileDialog cfd(TRUE)
cfd.DoModal()
然后打开一个文件,接着关闭AboutDlg
然后再打开AboutDlg
里面的图片就消失了,请问这是为什么?

解决方案 »

  1.   

    CFileDialog 改变了你的寻找路径,你最好把图片当做资源加到工程中,或者得到程序的路径+图片名称,组成绝对路径然后load进来
      

  2.   

    同意楼上的,对文件操作后程序的工作目录将改变为你打开文件的路径,所以你在程序中使用图片的相对路径会出错。
    另外,如果你在你的CFileDialog中点了Cancel按钮,工作目录就没有改变,你的图片也能正常显示。
    不知道我说的对不对
      

  3.   

    确实如此。在点击CFileDailog的OK按钮后改变了程序的默认路径。最好把图片当做资源加到工程中,或者得到程序的路径+图片名称,组成绝对路径然后load进来。我相信你能解决困惑你的问题。
      

  4.   

    CFileDialog 改变了你的寻找路径,你最好把图片当做资源加到工程中,或者得到程序的路径+图片名称,组成绝对路径然后load进来
      

  5.   

    为什么用ID_FILE_OPEN生成的函数用CFileDialog取文件路径出错,而且看到里面的m_hWnd为0x00000