将WebBrowser切换至编辑状态:
void CWebBrowser2::OnGotoEditMode() 
{
 CWnd* pwndIEShell = NULL;
 CWnd* pwndIEHTML = NULL;
 
 pwndIEShell = this->GetWindow(GW_CHILD); //this是CWebBrowser2指针
 if (pwndIEShell)
 {
  pwndIEHTML = pwndIEShell->GetWindow(GW_CHILD); 
 }
 
 if(pwndIEHTML != NULL)
 {
  WPARAM wParam = MAKELONG(IDM_EDITMODE, 1);//IDM_EDITMODE换为IDM_BROWSEMODE就返回浏览模式
  pwndIEHTML->SendMessage(WM_COMMAND, wParam, (LPARAM)pwndIEHTML->m_hWnd);
 } 
}之后你会发现WebBrowser控件中内容可以编辑了在这种情况下,和DHtmlEdit控件有什么区别?如果实现一个 所见所得的 HTML编辑器,采用DHtmlEdit控件好呢 还是采用WebBrowser控件?

解决方案 »

  1.   

    DHTML Editing Component 提供的功能有:
    ⑴文本格式化(Text Formatting):提供几乎所有的格式化选项。如设定HTML标记的字体大小、字型、粗细、字
    体样式、行高度、文本的颜色、加底线、加中间横线与边缘距离、靠左右或居中、背景图片及颜色等等。
    ⑵文本编辑(Editing):支持多级撤消和重复操作。同时可使用剪切、复制、粘贴命令。网页中的元素可以通过鼠
    标的拖动进行移动或进行元素大小的改变。特别是提供一定的键盘加速功能。
    ⑶拖动 (Drag and Drop Capability):该功能可以使我们在进行网页设计时,随意拖动任何对象、文本、元素到网页中的任意角落。
    ⑷绝对定位(Absolute Positioning):在文本中网页元素可以是绝对定位的——也就是说,用户可以使用CSS样式
    属性根据x、y 的坐标进行元素的绝对定位。
    ⑸查找(Search):该功能将提供一个查找对话框来支持文本的查找。
    ⑹超链接(Hyper Linking):提供了在文本中进行链接和书签的定义功能。
    ⑺图片(Image):提供了在文档中插入图片的功能。
    ⑻表格(Table Support):在网页的设计中,表格的使用是相当的普遍和相对的复杂。因此,提供灵活的表格插入
    和单元格的添加和删除功能,就设计网页编辑器来说,确实是一大利器。
    ⑼文件管理(File Management):提供对.html文件的打开、存储、打印功能。
    ⑽上下文菜单(Context Menu):支持创建上下文菜单的功能,用户可通过右击选定的对象来显示该菜单。
      

  2.   

    Windows Vista 将不包括 DHTML 编辑控件。必须对使用该控件的网页和 Windows 应用程序进行修改后,才能继续提供 WYSIWYG HTML 编辑器。文章来源:http://www.microsoft.com/china/MSDN/library/Windev/WindowsVista/htmleditinfuture
      

  3.   

    本质没有区别,都是以mshtml为基础的
      

  4.   

    请问 jameshooo 如果做一个所见所得的 HTML编辑器,采用哪个好?若考虑到升级问题,是否不要采用DHTML 编辑控件?
      

  5.   

    使用WebBrowser有点大材小用,因为HTML编辑器不需要导航功能,而WebBrowser主要就是提供导航。所以你的疑问是正常的,如果vista真的不提供此控件,可以采用WebBrowser代替。