SendMessage(hedit,EM_GETHANDLE,wp,lp)可获得缓冲区句柄

解决方案 »

  1.   

    谢谢fd先生,再请教fd先生,下面这段代码有何不妥处吗?HLOCAL hmem = (HLOCAL)::SendMessage(hedit,EM_GETHANDLE,0,0);
    long buflen = LocalSize(hmem);
    hmem = LocalReAlloc(hmem,buflen+strlen(pszNewText),LMEM_ZEROINIT);
    char* pbuf = (char*)LocalLock(hnewmem);
    LocalUnlock(hnewmem);
    buflen = LocalSize(hmem);
    strcat(pbuf,pszNewText);
    ::SendMessage(hedit,EM_SETHANDLE,(WPARAM)hnewmem,0);SiftDIY先生的DDX是怎样做?能否赐教?
      

  2.   

    zjy:
    你好,我用VC试了一下,你的代码 hnewmem是什么?好象用不着,另外LocalUnlock
    最好放在strcat之后
    以下代码运行正确
    HLOCAL hmem=(HLOCAL)::SendMessage(hedit,EM_GETHANDLE,0,0);
    long buflen=LocalSize(hmem);
    hmem=LocalReAlloc(hmem,buflen+strlen(pszNewText),LMEM_ZEROINIT);
    char*pbuf=(char*)LocalLock(hmem);
    strcat(pbuf,pszNewText);
    LocalUnlock(hmem);
    ::SendMessage(hedit,EM_SETHANDLE,(WPARAM)hmem,0);
      

  3.   

    我不太了解你的程序,我只是建议是否可以用DoDataExchange中的DDX_Text。