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

 

MFC对话框中使用CHtmlEditCtrl的更多相关文章

  1. MFC对话框中显示BMP,JPG图片

    //************************************ // 方法说明:    显示JPG和GIF.BMP图片 // 参数说明:    CDC * pDC           设 ...

  2. 在MFC对话框中添加状态栏

    如果我们想实现在MFC对话框中添加状态栏显示,如何例如分状态栏为两列,第一列显示鼠标的当前位置,第二列显示当前的时间,(如上图). 1. 首先,打开在资源视图的String Table并添加两个ID: ...

  3. MFC对话框中显示背景图片

    在MFC对话框中显示图片,四个步骤. 1.首先得在VC6.0或者VS2008(其他版本也是一样)中导入GDI文件.(网上下载:) GDI含义是图形设备接口,主要任务是负责系统与绘图程序之间的信息交换, ...

  4. 在MFC对话框中快速集成三维控件

    在MFC的对话框中可以方便的集成AnyCAD三维控件(c++版本),遵循一下几步: 1.在对话框资源中增加一个Static控件,ID为IDC_STATIC_3D,并且把它的Notify属性设置为Tru ...

  5. MFC 对话框中动态创建N级菜单以及响应事件

    创建一个基于对话框的工程,工程名为CreateMenu 为该对话框增加一个文件菜单项和测试菜单项,如下图所示   测试菜单项至少要有一个子菜单项 在对话框属性中关联该菜单 在resource.h中增加 ...

  6. MFC对话框中解决回车键、ESC键退出的方法

    BOOL CYourDlg::PreTranslateMessage(MSG* pMsg) { if(pMsg->message==WM_KEYDOWN&&pMsg->wP ...

  7. [MFC] 对话框菜单项Menu选中打勾(单选,多选)

    近期需要实现一个功能:MFC对话框中,一项菜单下有五个菜单项,改变菜单项选中状态,每次只能选择其中一个打勾.(单选) 然后在网上搜了下资料,稍微总结下,以防后面用到. 1.单选实现: CMenu* m ...

  8. MFC中关于子对话框中编辑框不能编辑的问题

    最近在用MFC写程序.发现子对话框中的编辑框不能编辑.具体问题是这样的: 我有一个对话框YhglDlg,创建了这个对话框的子对话框ZjyhxxDlg,子对话框的Style属性为Child,Border ...

  9. Win32 DLL和MFC DLL 中封装对话框

    现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题.这里我们从Win32   DLL和MFC   DLL两个方面来分析并解决这个问题.     ...

随机推荐

  1. 服务端性能测试校准v1.2

    服务端性能测试工具校验v1.2 想知道压力工具实际并发多少,想知道压力工具统计响应数据准不准,来试试这款校准工具. 更新说明: 1.修正总接收请求显示上限. 2.随着响应时间增加,自动增加处理线程. ...

  2. Windows2003 IIS6.0支持32位和64位两种模式的设置方法

    IIS 6.0 可支持 32 位和 64 位两种模式.但是,IIS 6.0 不支持在 64 位版本的 Windows 上同时运行这两种模式.ASP.NET 1.1 只在 32 位模式下运行.而 ASP ...

  3. Visual Studio 14 初试,vNext

    下了几天的VS 2014 .终于安装上了,花了好几天时间, VS 2014  下载地址, http://www.visualstudio.com/en-us/downloads/visual-stud ...

  4. CentOS 网卡配置bond4(LACP)

    交换机开启LACP,配置聚合. 网卡eno1, eno2, eno3.eno1为管理口,eno2和eno3绑定,配置bond4. 配置eno2: vim /etc/sysconfig/network- ...

  5. JavaServer Faces 2.0 can not be installed解决方案

    问题描述:maven项目出现如下错误 JavaServer Faces 2.0 requires Dynamic Web Module 2.5 or newer..Maven Java EE Conf ...

  6. ios webview 只能播放带域名的视频连接好奇怪!

    - (void)loadWebView { UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(, , SCREEN_WI ...

  7. Android 蓝牙打印超时问题的处理

    http://stackoverflow.com/questions/18657427/ioexception-read-failed-socket-might-closed-bluetooth-on ...

  8. JAVA 编程规范(上)

    2016-03-20 J120-CHARLIEPAN JAVA 编程规范(上) 1.      应用范围 本规范应用于采用J2EE规范的项目中,所有项目中的JAVA代码(含JSP,SERVLET,JA ...

  9. inux grep 命令 搜索含有"zynq"字符的文件

    使用命令grep -rl 'zynq' /work/xilinx/u-boot-xlnx-master (有引号)-r 选项表示递归(recursive)遍历所有子目录-l 选项表示只列出文件名 /w ...

  10. Struts2基础使用教程:OGNL

    取自<JAVAWEB整合开发王者归来> 是一种类似EL的语言,比EL强大的多 能访问对象的方法,例如list.size() 能访问静态属性与静态方法,方法是在类名前.方法前加上@.如@ja ...