pStaticFramNum->SetWindowText(strImageNum);
直接这样写呢?

解决方案 »

  1.   

    同意直接写pStaticFramNum->SetWindowText(strImageNum);
    strImageNum应该是一个string吧。
      

  2.   

    好奇怪。
    推测应该不是CString的原因,可能是同步控制没做好。
      

  3.   


    LPTSTR p = strImageNum.GetBuffer(strImageNum.GetLength());
    pStaticFramNum->SetWindowText(p);
    strImageNum.ReleaseBuffer( );
      

  4.   

    我也试过,静态文本框是不能直接SetWindowText()的。
      

  5.   

    同意Elysium(東鱗覀爫)的说法。
    应该是GetBuffer之后没有ReleaseBuffer.
      

  6.   

    直接写应该可以的 
    pStaticFramNum->SetWindowText((LPCTSTR)strImageNum);
    你可以试试常量会不会有问题啊
    pStaticFramNum->SetWindowText("sjflsjdfljl");
      

  7.   

    pStaticFramNum???析够后记得置NULL,使用之前要进行判断是否为NULL
      

  8.   


    第一,SetWindowText()函数可以用来设置静态框的文本。
    第二,SetWindowText()的参数可以直接用CString类的对象,因为CString类中有一个运算符[operator LPCTSTR]可以隐含的把CString的对象转化为LPCTSTR指针。
    第三,如果采用楼主的方式,如果楼主后面还调用CString类的对象的操作,那么在调用前要先调用ReleaseBuffer()。这一点与[Elysium(東鱗覀爫)]和[ yaojunde()]说的相同。因为GetBuffer()函数返回的指针可以直接修改字符串内容。会
    第四,那么可能存在的原因是指针pStaticFramNum为空或者赋值出现了错误。
      

  9.   

    通常使用SendMessage的办法来处理类似的多线程的问题
    更可靠的,还要考略更新同步