2016-09-26 22 views
1

私は編集コントロールのためにCHtmlEditViewクラスを使用しています。エディットコントロールにテキストを書いてみたい。 GetWindowText()は、空の文字列を返します。サポートされているとは確信していませんが、私に警告を与えません。私はテキストを取得するためにIHTMLDocument2インターフェイスを試してみました。私はテキストを取得していますが、HTML形式(テキストは<body>で書かれています)です。だから私はどのようにCHtmlEditViewコントロールからのみテキストを取得するか分からない。私はCHtmlEditViewのAPIとその基本クラスのリストを見てきましたが、そこに何も得られませんでした。誰でもCHtmlEditViewからテキストを取得する方法を知ることができますか?CHtmlEditViewからテキストを取得

答えて

2

IHTMLElement::innerText

設定または オブジェクトの開始タグと終了タグの間のテキストを検索します。

例:

CHtmlEditView html_edit; 
// or CHtmlEditCtrl html_edit; 
... 

CString getPlainText() 
{ 
    CComPtr<IHTMLDocument2> doc2; 
    html_edit.GetDHtmlDocument(&doc2); 

    CComPtr<IHTMLElement> element; 
    doc2->get_body(&element); 

    CComBSTR bstr; 
    element->get_innerText(&bstr); 
    CString text = bstr; 
    return text; 
} 
+1

'要素 - > put_innerText(BSTR)' –

+0

おかげBarmakは、私はそれを試してみました、それは私の問題を解決しました。 'CHtmlEditView'の通知のような 'EN_CHANGE'がありますか? 'EN_CHANGE'を含む 'CHtmlEditView'テキストに変更があったときに通知を受け取ることができません – void

+0

コメントセクションで連続した質問をすることはできません。あなたの質問に答えられたら、それを受け入れるために緑のマークをチェックしてください。 –

関連する問題