程序其中有这样一段代码
   if(IsFile==0)
   {
   SaveBitmapToFile(CopyScreenToBitmap(pWnd), "E:\\照片数据\\picture1.bmp");
   
   }每次都存储到E盘,照片数据文件夹中,文件明为picture1.bmp。如果在次测量会覆盖上次所保存的对象。目前我想把保存方式改进如下:1.文件位置是E盘照片数据文件夹中,这个是固定的。2.每次测量更具系统日期建立一个文件夹,比如20101218这个文件夹,然后在里面保存文件20101218_00001,以此类推20101218_00002,20101218_00003等等。3.如果再次打开程序,保存数据时需要读取上次保存的位置,比如当时保存在20101218_00020,然后保存的是20101218_00021,以免覆盖之前保存的数据。应该还是可以实现的吧,有没有什么可以参考的代码呢?谢谢大家啦

解决方案 »

  1.   

    可以先创建20101218这个文件夹,然后往里面保存文件20101218_00001,每次保存文件后需往ini文件写入一个字段代表最后保存的文件名,当每次要保存时都读取这个字段
      

  2.   


    谢谢啦,思路很清晰哈,20101218这个文件是自动创建。明天就是20101219,自动创建。ini文件写入一个字段代表最后保存的文件名,我可以把这个名字写入TXT文件中,每次保存的时候去读取。不知道有没有可以参考的代码,才开始做数据保存这块。
      

  3.   

    1. DWORD dwAttr = GetFileAttributes(lpFileName);
    通过判断dwAttr 是否等于 0xFFFFFFFF,来判断文件是否存在。 (当然也有其他方式)2. 通过系统时间及路径获取文件名这段代码差不多够用了 保存前别忘了创建文件夹#include <stdio.h>
    #include <windows.h>void main()
    {
        TCHAR szFileDir[] = _T("D:\\tmp");
        SYSTEMTIME sm;
        GetLocalTime(&sm);
        TCHAR szDay[128];
        _stprintf(szDay, _T("%04d%02d%02d"), sm.wYear, sm.wMonth, sm.wDay);
        for (int i=1; ; i++)
        {
            TCHAR buffFileName[MAX_PATH];
            _stprintf(buffFileName, _T("%s\\%s\\%s_%05d.bmp"), szFileDir, szDay, szDay, i);
            if (GetFileAttributes(buffFileName) == 0xFFFFFFFF)
            {
                //Add your code
                //SaveBitmapToFile(CopyScreenToBitmap(pWnd), "E:\\照片数据\\picture1.bmp");
                break;
            }
        }
    }
      

  4.   

    恩好的,看你保持在D盘 tmp文件夹中。要研究一下你的代码,不懂在向你请教哈,谢谢你了
      

  5.   


    我想把  CWnd* pWnd = GetDlgItem(IDC_VIEW_WND);  保存出来,怎么加入到程序中呢?
      

  6.   

    你想保存IDC_VIEW_WND的什么内容呢?文本的话GetDlgItemText
      

  7.   

    CWnd* pWnd = GetDlgItem(IDC_VIEW_WND); 
    if(IsFile==0)
    {
     SaveBitmapToFile(CopyScreenToBitmap(pWnd), "E:\\照片数据\\picture1.bmp");
       
    }IDC_VIEW_WND 是个矩形框,显示图像,想把这个上面的图像保存在你给我的那些代码中。