要使CHtmlEditCtrl编辑控件自动换行,可以使用以下步骤:
- 首先,创建CHtmlEditCtrl控件并进行初始化。
CHtmlEditCtrl m_htmlEditCtrl;
m_htmlEditCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER, CRect(0, 0, 300, 200), this, 1);
- 然后,获取控件的文档对象并获取编辑器对象。
CDocument* pDoc = m_htmlEditCtrl.GetDocument();
IHTMLDocument2* pHtmlDoc = NULL;
pDoc->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pHtmlDoc);
IHTMLBodyElement* pBody = NULL;
pHtmlDoc->get_body(&pBody);
IHTMLTxtRange* pRange = NULL;
pBody->createTextRange(&pRange);
- 设置编辑器的自动换行属性为true。
pRange->put_wordWrap(VARIANT_TRUE);
- 最后,释放相关的COM接口。
pRange->Release();
pBody->Release();
pHtmlDoc->Release();
完整的示例代码如下:
// 头文件
#include <mshtml.h>
CHtmlEditCtrl m_htmlEditCtrl;
// 实现文件
void CMyDialog::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 创建CHtmlEditCtrl控件
m_htmlEditCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER, CRect(0, 0, 300, 200), this, 1);
// 获取文档对象和编辑器对象
CDocument* pDoc = m_htmlEditCtrl.GetDocument();
IHTMLDocument2* pHtmlDoc = NULL;
pDoc->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pHtmlDoc);
IHTMLBodyElement* pBody = NULL;
pHtmlDoc->get_body(&pBody);
IHTMLTxtRange* pRange = NULL;
pBody->createTextRange(&pRange);
// 设置自动换行属性
pRange->put_wordWrap(VARIANT_TRUE);
// 释放COM接口
pRange->Release();
pBody->Release();
pHtmlDoc->Release();
}
这样,CHtmlEditCtrl编辑控件就会自动换行了。