• MFC对话框中使用CHtmlEditCtrl


    MFC对话框中使用CHtmlEditCtrl

    感谢原帖作者:

    http://blog.csdn.net/tingya/article/details/2028172

    我在VS2008校正了一些代码。

    最近由于项目需要,需要在对话框中使用CHtmlEditCtrl控件,网上大部分的代码都是直接使用CHtmlEditView的,很少有CHtmlEditCtrl在对话框中使用的示例。网上有一个《动态表情的》,代码中存在bug,因此给出了可以编译运行的代码:

    (1)、由于CHtmlEditCtrl的构造函数被声明为protected,因此没有办法直接使用。微软已经承认这是一个Bug,在后继的版本中会修改。为此我们必须继承一个新的类,声明为CMyHtmlEditCtrl,该类不需要做任何事情。

    (这一步在VS2008中我没有做,而是直接定义了CHtmlEditCtrl类型的变量,同时定义变量的时候要引入头文件"afxhtml.h")

    (2)、在对话框的.h中增加一个成员CMyHtmlEditCtrl m_HtmlEditCtrl;

    (3)、在对话框中的设计中增加一个CStatic控件,将它的大小放到适当,它的资源 ID为IDC_STATIC。

    (4)、在对话框的OnInitDialog中增加下面的代码:

    CRect rcIE;

    GetDlgItem(IDC_STATIC)->GetWindowRect(&rcIE);

    ScreenToClient( &rcIE );

    BOOL bRet = m_HtmlEditCtrl .Create(NULL,

    WS_VISIBLE|WS_CHILD|WS_VSCROLL|WS_HSCROLL,

    rcIE,

    this,

    IDC_STATIC,

    NULL);

    GetDlgItem( IDC_STATIC)->DestroyWindow();

     

    至此一切OK,So easy!!!!!!!!!!!!!!

     

    对话框运行起来后,可以输入,支持Ctrl+B等操作,我从网页上拷贝了一段HTML代码,竟然连图片也可以一起拷贝过来。

    然后就可以用GetDHtmlDocument方法来取得控件里面的HTML了。更多此控件的API参见这里https://msdn.microsoft.com/en-us/library/a00ea529(v=vs.90).aspx

     

  • 相关阅读:
    mysql触发器
    mysql存储过程
    怎样理解阻塞非阻塞与同步异步的区别?
    常用的排序算法的时间复杂度和空间复杂度
    Struts+Hibernate+Spring面试题合集及答案
    springMVC面试题
    Mybatis面试题合集及答案
    Java基础面试题集(二)
    Java基础面试题集(一)
    Spring----EJB
  • 原文地址:https://www.cnblogs.com/time-is-life/p/5986384.html
Copyright © 2020-2023  润新知