把你的process的源码贴出来!
问题一:做一个放一个static不就得了

解决方案 »

  1.   

    第一个问题很简单 你可以先把 要显示的那部分失效 在调用显示函数 比如drawtext等
    就ok了
    第二个问题吗 你多比较比较 标准的建立进程的方法 看有没有问题
      

  2.   

    Process源码如下:void CCPublishDlg::OnTimer(UINT nIDEvent) 
    {
    // TODO: Add your message handler code here and/or call default
    if(nIDEvent == 1){
    CCPublishDlg::Process();
    } CDialog::OnTimer(nIDEvent);
    }
    void CCPublishDlg::Process()
    {
    //读取配置文件信息
    CStdioFile InfoFile;
    LPCSTR lpszFileName;  
        lpszFileName = "d:\info.INF";
    InfoFile.Open(lpszFileName,CFile::modeRead);
    CString str;
    InfoFile.ReadString(str);//读第一行
        InfoFile.Close(); 
    }drawtext可以在对话框中直接显示吗?假如我想在edit中显示呢(看着美观些)?
      

  3.   

    哥们,打开文件时可能出错!将lpszFileName = "d:\info.INF";
     改为:
       lpszFileName = "d:\\info.INF";试一试
      

  4.   

    哥们,打开文件时可能出错!将lpszFileName = "d:\info.INF";
     改为:
       lpszFileName = "d:\\info.INF";试一试
     drawtext好象不能在对话框中直接显示。要在edit中显示,可以用函数SetWinowText(...)
      

  5.   

    CFile::Open 
    virtual BOOL Open( LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL );Return ValueNonzero if the open was successful; otherwise 0. The pError parameter is meaningful only if 0 is returned.不检查返回值可不是个好习惯
      

  6.   

    换成lpszFileName = "d:\\info.INF"仍有错误(但似乎路径已经正确,lpszFileName返回值正确 ),错误提示摘要如下:
    Debug Assert Failed
    Program:...ICROSOFT VISUAL
    ……
    File:fgets.c
    Line:60
    Exception:str != NULL
    ……另外问一个让诸位晕倒的问题:怎样看布尔函数的返回值,我在Debug下找不见(唉……),将open拉下来也不行,怎么做?
      

  7.   

    1.你加一个static控件,ID为IDC_STATIC_YOUR
    在你完成了某一任务时,可改变其标题。
    GetDlgItem(IDC_STATIC_YOUR)->SetWindowText("程序正在运行");2."\"在C,C++中是一个很特殊的符号,需要表示\时,应用如下方式:"\\"
    另外,你打开文件的方式需要注意。
    如果你的d:\info.INF文件尚未建立,则这样用modeRead方式打开是错误的。
    这里你的错误在:
    InfoFile.ReadString(&str)//你没有使用引用
      

  8.   

    谢谢ydogg(灰毛兔)对第一问的回答,第二问中,“ \\”已经改正,info.INF也已建立,改成&str后编译不通过,readstring好像和read不一样。问题如故。
      

  9.   

    对Open监测后,返回值为0,看来文件没打开,那时怎么回事呢?
      

  10.   

    你确信open的时候,info.inf文件存在吗?
      

  11.   

    2。sorry,
    InfoFile.ReadString(&str)//你没有使用引用
    这句话是错误的,其参数为引用而已。
    不要用&.将InfoFile.Open(lpszFileName,CFile::modeRead);
    换为
    InfoFile.Open(lpszFileName,CFile::modeCreate|CFile::modeRead);
    试试看返回值。
      

  12.   

    CStdioFile InfoFile;
    LPCSTR lpszFileName;  
    lpszFileName = "d:\\info.INF";
    InfoFile.Open(lpszFileName,CFile::modeRead);
    CString str;
    InfoFile.ReadString(str);//?第一行
    InfoFile.Close(); 
    我在VC中New a file named the above name,and type one line,and run the above codes,the result is correct!
    你可以再找找其原因
      

  13.   

    加上CFile::modeRead返回值是1,但是我这个文件确实已经建立了呀,而且Debug发现我要读取得第一行信息str没有返回值,读不出我要的字符。这是为什么呢?
      

  14.   

    同志们,有进展了,我把路径名换成了DOS下的INFOIN~1.TXT就ok了,另外再问:在edit中我想显示一行后转到下一行,用"\n"好像不行,有什么办法?
      

  15.   

    SetWindowsText("正在运行...\r\n")或者SetWindowsText("正在运行...""\r\n")都不行,另外,str="d:\documnet\*.txt",FindFile(str)找不到文件,把"\"换成"\\"也不行(d:\document\中放了几个文本文件),怎么办?
      

  16.   

    SetWindowsText("正在运行...\r\n")//已经换行。
    SetWindowsText("正在运行...\r\n现在的状态")//
    FindFile()不支持统配符*.需要明确的写出文件名
      

  17.   

    呵呵,老大,是你的timer事件太多了,你应该进入Ontimer后就把定时器关掉。
      

  18.   

    1.把static拉大一些,让它可以包含多行。
      SetWindowsText("正在运行...\r\nfile1.txt\r\nfile2....")
    2 用FindFirstFile和FindNextFile
      

  19.   

    to ydogg(灰毛兔):sorry,我没把意思表述清楚,我是想按下按钮1,edit中显示“str1”,按下按钮2,edit中另起一行显示“str2”,这是不是实际上要移动光标cursor?
    另外FindFile(*.*)好像是可以的,现在要命的是,我并不确定目录里的文件叫什么名字(每天更新,名字不确定),怎么find呢?to : neomeng(大胖)要是在OnTimer就关掉,不就不能循环了吗? 
     
      

  20.   

    FindFirstFile好像不是MFC里的吧?
      

  21.   

    FindFirstFile是API  :P
    如果用CFileFind类的话,*.txt也应该是可以的。
    CFileFind ff;
    BOOL bFind;
    bFind=ff.FindFile("d:\\document\\*.txt");
    while(bFind)
    {
     ...
     ...
     bFind=ff.FindNextFile();
    }
      

  22.   

    to wmouse:
    你的意思我明白了。可是如果在一个Edit中想换行表示,就要将两个字符串联在一起(中间加\r\n)
    你可以这样去做:
    1.每次显示时,先得到Edit中目前存在的内容,可用GetWindowText(temp);
    2.temp=+"\\r\\n";
    temp
    显示这样可以吧。
      

  23.   

    to wmouse:
    你的意思我明白了。可是如果在一个Edit中想换行表示,就要将两个字符串联在一起(中间加\r\n)
    你可以这样去做:
    1.每次显示时,先得到Edit中目前存在的内容,可用GetWindowText(temp);
    2.temp+="\\r\\n";
      temp+=yournewstr;
    3.显示这样可以吧。 
      

  24.   

    回答,我试了试,首先“\\r\\n”会将“\r\n”以字符直接输出,而用“\r\n”还是不起作用,我也十分奇怪,望哪位老大能试验一下,另外bFind=ff.FindFile("d:\\document\\*.txt");
    bFind值为0,why?
      

  25.   

    1.你是在EditBox中显示吗?如果是在EditBox的properties\style选择MultiLine.
    2.在c的字符串中'\'是转意字符,要想表示反斜杆必须用'\\'(这里'\\'只表示一个字符,
    所以用了单引号),'\r'表示回车,'\n'表示换行。
    3。bFind=ff.FindFile("d:\\document\\*.txt")我测试是成功的,你检查一下你的路径是否正确,txt文件是否存在
      

  26.   

    新问题:要是加一个ScrollBar,在声明了一个ScrollBar对象后,还要做那些工作?(好傻的问题),另外我用FindFile("d:\\document\\*.*")显示布尔值为1,但在之后FindNextFile也成功后(返回值1),GetFilePath却无返回值,我又哪里错了,希望大家别嫌烦,小弟多谢了。
      

  27.   

    不知是不是"."和".."在作怪,這兩個東西DOS下應當比較常用,你可以留意它們,試試了!
      

  28.   

    看看是不是"."或"..",這在DOS下應比較熟.
      

  29.   

    我进行文件拷贝CopyFile,用::GetLastError()查出错码居然表示The network path was not found. 我可是在本机上两个目录之间拷贝呀,怎么会跟netpath有关?
      

  30.   

    若要输出",怎么输出?用AfxMessageBox只能输出'
      

  31.   

    比如说想输出这样一句话:a href="next"怎么做?