| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 636 人关注过本帖
标题:记录鼠标位置程序 CStdioFile 文件读写失败 大神出来看看 问题出在哪
只看楼主 加入收藏
oicq
Rank: 1
等 级:新手上路
帖 子:34
专家分:1
注 册:2010-9-22
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:3 
记录鼠标位置程序 CStdioFile 文件读写失败 大神出来看看 问题出在哪
程序代码:
//开始记录鼠标位置
void CfileDlg::OnBnClickedButton1()
{
    // TODO: 在此添加控件通知处理程序代码
    MessageBox(L"开始记录用户鼠标位置");
    m_bSig = true;
    if(!file.Open(L"..\\lgz.bat",CFile::modeCreate|CFile::modeWrite,0))
    {
        MessageBox(L"打开文件失败");
        return ;
    }

 
}
//结束记录鼠标位置
void CfileDlg::OnBnClickedButton2()
{
    // TODO: 在此添加控件通知处理程序代码
    MessageBox(L"停止记录");
    m_bSig = false;
    file.Close();
}
//添加鼠标移动消息响应函数
void CfileDlg::OnMouseMove(UINT nFlags, CPoint point)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值

       if (m_bSig == true)
       {
           WCHAR buf[100] ={0};
           wsprintf(buf,L"鼠标 x 坐标: %d  -------  y 坐标:%d\r\n",point.x,point.y);
           file.SeekToEnd();
           file.WriteString(buf);
           file.Flush();
       }
     CDialog::OnMouseMove(nFlags, point);
}
//对话框类添加的成员变量
public:
    bool  m_bSig;  //是否开始记录鼠标
    CStdioFile file; 

N次试验 数据都写不到文件里去


[ 本帖最后由 oicq 于 2014-5-30 02:30 编辑 ]
搜索更多相关主题的帖子: 记录 color 
2014-05-30 01:55
oicq
Rank: 1
等 级:新手上路
帖 子:34
专家分:1
注 册:2010-9-22
收藏
得分:0 
回复 楼主 oicq
这两天做了实验 用vs 2008 使用ascii字符集  将程序中的字符串改成ascii格式 可以成功  但是用 unicode字符集却失败  如果要使用unicode字符集 我该怎么改 坛里有没有人帮我一下+

                                                                  D.神罗天征
2014-05-31 13:33
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:20 
调试看看返回值或者错误码什么的

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2014-06-01 11:33
oicq
Rank: 1
等 级:新手上路
帖 子:34
专家分:1
注 册:2010-9-22
收藏
得分:0 
程序代码:
void CfileDlg::OnMouseMove(UINT nFlags, CPoint point)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值
 
       if (m_bSig == true)
       {
           CString str;
           str.Format(L"横坐标 x: %d - 纵坐标 y: %d\r\n",point.x,point.y);
           file.SeekToEnd();
//------------------------------------------------------------------------------------         
           char* old_locale = _strdup( setlocale(LC_CTYPE,NULL) );  // UNICODE字符集 需要 #include locale.h

           setlocale( LC_CTYPE, "chs" );//设定             UNICODE字符集 需要 #include locale.h
//------------------------------------------------------------------------------------
           file.WriteString(str);   //ASCII 字符集可以直接写   UNICODE字符集 需要 #include locale.h
//------------------------------------------------------------------------------------
           setlocale( LC_CTYPE, old_locale );   // UNICODE字符集 需要 #include locale.h

           free( old_locale );//还原区域设定     UNICODE字符集 需要 #include locale.h
//------------------------------------------------------------------------------------
        
         
           file.Flush();
       }
     CDialog::OnMouseMove(nFlags, point);
}
问题找到了 实际上是字符集的问题  ASCII 字符集程序 不会出问题 而UNICODE字符集程序 就会有问题   
2种解决方法: 1 种就是直接改成 ASCII字符集程序
              2 种是 我贴了代码   

这就解决了
也谢谢版主的回答
   

                                                                  D.神罗天征
2014-06-05 11:53
快速回复:记录鼠标位置程序 CStdioFile 文件读写失败 大神出来看看 问题出在哪
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050545 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved