BOOL WritePrivateProfileString( 
  LPCTSTR lpAppName,  // pointer to section name 
  LPCTSTR lpKeyName,  // pointer to key name 
  LPCTSTR lpString,  // pointer to string to add 
  LPCTSTR lpFileName  // pointer to initialization filename 
); 
我想保存用户选择的颜色color=RGB(*,*,*)
参数都是LPCTSTR,这怎么弄啊?

解决方案 »

  1.   

    [Settings]
    Color=0,0,0----------------------------------
    lpAppName ==> "Settings"
    lpKeyName ==> "Color"
    lpString  ==> "0,0,0"
    lpFileName ==> INI文件路径。
      

  2.   

    DWORD   GetPrivateProfileString(   
          LPCTSTR   lpAppName,                 //   section   name   
          LPCTSTR   lpKeyName,                 //   key   name   
          LPCTSTR   lpDefault,                 //   default   string   
          LPTSTR   lpReturnedString,     //   destination   buffer   
          DWORD   nSize,                             //   size   of   destination   buffer   
          LPCTSTR   lpFileName                 //   initialization   file   name   
      );   
        
    那GetPrivateProfileString的参数怎么填呢?
    写入的是0,0,0这个颜色,可是用户不一定选的是0,0,0啊,问题就在这里,怎么取得color的值再存入呢?
      

  3.   

    lpAppName,lpKeyName, lpFileName同上的含义。lpDefault是如果从文件没有获得实际值,而给出的一个默认值, lpReturnedString是你存放从文件获取值的buffer,nSize是这个buffer的大小。写入的是0,0,0这个颜色,可是用户不一定选的是0,0,0啊,问题就在这里,怎么取得color的值再存入呢?问题是这句话你没表达清楚。
      

  4.   

    格式化字符串不会啊?
    CString strColor;
    strColor.Format(_T("%d"), color);
    读取的时候再转换成数值:
    color = (COLORREF)_ttol(strColor);
      

  5.   

    使用GetPrivateProfileInt更方便:COLORREF crValue = RGB(0, 0, 0);
    CString strTemp;
    strTemp.Format("%u", (DWORD)crValue);
    WritePrivateProfileString("Settings, "Color", strTemp, "c:\\1.ini");crValue = (COLORREF)GetPrivateProfileInt("Settings", "Color", 0, "c:\\1.ini");