我使用CHtmlEditView
当想插入任意html时,他不能在当前光标处插入
于是查看了一个外国网站,让我先写入剪切板,在paste,可是我这样做
::SetClipboardData(CF_TEXT, hGlobal);
用Paste()时,总是直接把文本直接贴到了当前光标处。
是不是CF_TEXT的类型该改改呢?
我没找到CF_HTML这样的东东,各位帮帮忙。
非常急的

解决方案 »

  1.   

    http://www.codeguru.com/clipboard/HowToPasteHtml.html
    How to Paste HTML
      

  2.   

    还有个不用剪贴板的方法,呵呵,如下
    /**************************** 函数:HrGetRangeFromSelection 
    功能:返回当前IHTMLTxtRange的指针 ****************************/ 
    HRESULT CHHtmlEditCtrl::HrGetRangeFromSelection(IHTMLTxtRange ** ppRange)
    {
    IHTMLSelectionObject *pSel=0; 
    IHTMLTxtRange *pTxtRange=0; 
    IDispatch *pID=0; 
    HRESULT hr=E_FAIL;  if(ppRange == NULL) 
    return E_INVALIDARG;  *ppRange = NULL;  IHTMLDocument2* pDoc = NULL; 
    if(GetDHtmlDocument(&pDoc)) 

    if(pDoc) 

    pDoc->get_selection(&pSel); 
    if(pSel) 

    pSel->createRange(&pID); 
    if(pID) 

    hr=pID->QueryInterface(IID_IHTMLTxtRange,(LPVOID *)ppRange); 
    pID->Release(); 

    pSel->Release(); 

    pDoc->Release(); 


    return hr; 
    }// 使用
    IHTMLTxtRange *pRange = NULL; 
    if(SUCCEEDED(HrGetRangeFromSelection(&pRange))) 

    CString str;
    str = "123456789";
    pRange->pasteHTML(str.AllocSysString()); 
    pRange->Release(); 
    }
      

  3.   

    非常感觉二位帮忙,每人50分吧
    其实,我也想不用clipboard实现它,可是想了半天,脑袋转了180度,(都向后看了)还是没想出来。
    只好用clipboard,可是在半路上,又出现了这个问题,又转了180度,(又正常了)
    现在一贴解决了两个问题,现在反思一下,还是编程经验太少了。再次感谢,敬礼!!:)