• C++中嵌入网页(duilib编辑框的实现)


    效果

    分析QQ的框框,你会发现,字体等格式编辑其实都是网页。

    1.xml配置

    View Code
    1               <HorizontalLayout >
    2 <Label text="邮件内容:" width ="60" height="16" textcolor="#FF666666"/>
    3 <ActiveX name="ie" clsid="{8856F961-340A-11D0-A96B-00C04FD705A2}" delaycreate="false"/>
    4 </HorizontalLayout>

    2.加载控件

    void CMailDialog::Init() {
    	  
    	     SetIcon(IDR_MAINFRAME); //   Set   big   icon 
    		
           
             m_pCloseBtn = static_cast<CButtonUI*>(paint_manager_.FindControl(_T("closebtn")));
            
    		 CActiveXUI* pActiveXUI = static_cast<CActiveXUI*>(paint_manager_.FindControl(_T("ie")));
            if( pActiveXUI ) {
                IWebBrowser2* pWebBrowser = NULL;
                pActiveXUI->GetControl(IID_IWebBrowser2, (void**)&pWebBrowser);
                if( pWebBrowser != NULL ) {
    				std::string strPath=ConfigManager::instance()->getSkinPath()+"\\MailEditor\\index.html";
    
    				int Len=::MultiByteToWideChar (CP_ACP, 0, strPath.c_str(), -1, NULL, 0);
    				wchar_t *buf=new wchar_t [Len];
    				MultiByteToWideChar(CP_ACP,0,strPath.c_str(),-1,buf,Len); 
    				std::wstring wstrFilePath=std::wstring(buf);
    				delete[] buf;
    
    				pWebBrowser->Navigate((BSTR)(wstrFilePath.c_str()),NULL,NULL,NULL,NULL);  
                    pWebBrowser->Release();
                }
            }
    		 
        }
    

     index.html

     1 <html>
    2 <head>
    3 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    4 <meta name="save" content="history">
    5 <title>邮件编辑器</title>
    6 <link rel="stylesheet" type="text/css" href="editor/comm.css" />
    7 <script language="javascript" src="editor/all.js"></script>
    8 <script language="javascript" src="editor/editor.js"></script>
    9 <script language="javascript" src="editor/editor_toolbar.js"></script>
    10 <script language="javascript">
    11 function checkform(){
    12 if(document.form1.title.value ==""){
    13 alert("请输入标题");
    14 return false;
    15 }
    16 var v = DoProcess();
    17 if(v != true){
    18 alert("请输入内容");
    19 return false;
    20 }
    21 }
    22 function ReSet()
    23 {
    24 var clientWidth=document.body.clientWidth-10;
    25 var clientHeight=document.body.clientHeight-40;
    26
    27 document.getElementById("HtmlEditor").style.width=clientWidth+'px';
    28 document.getElementById("HtmlEditor").style.height=clientHeight+'px';
    29
    30 var SourceEditorobj=document.getElementById("SourceEditor");
    31 if(SourceEditorobj)
    32 {
    33 SourceEditorobj.style.width=clientWidth+'px';
    34 SourceEditorobj.style.height=clientHeight+'px';
    35 }
    36
    37 }
    38 </script>
    39 <style type="text/css">
    40
    41 .prompt {border:1px dotted #ccc;background-color:#ffe;color:#666;padding: 5px 5px 5px 30px;line-height:120%;width:1600px}
    42 </style>
    43 </head>
    44 <body onResize="ReSet()" scroll= "no" >
    45 <table border="0" cellpadding="2" cellspacing="1">
    46 <form name="form1" method="post" action="?action=saveadd" target="_blank" onSubmit="return checkform();">
    47
    48 <tr>
    49
    50 <td><textarea id="content" name="content" style="display:none;"></textarea>
    51 <script language="javascript">
    52
    53 gFrame = 0;//1-在框架中使用编辑器
    54 gContentId = "content";//要载入内容的content ID
    55 OutputEditorLoading();
    56 </script>
    57 <iframe id="HtmlEditor" class="editor_frame" frameborder="0" marginheight="0" marginwidth="0" style="100%;height:100%;overflow:visible;" hideFocus></iframe>
    58 </td>
    59 </tr>
    60 </form>
    61 </table>
    62 </body>
    63 </html>

    editor可以从网上下载



  • 相关阅读:
    zbb20170621 linux CentOS 7上安装jdk时提示:/lib/ld-linux.so.2: bad ELF interpreter
    zbb20170620 eclipse tomcat 临时目录
    zbb20170619 bat cmd 脚本相关
    zbb20170613 linux 安装 mysql
    1.1 Eclipse的安装
    2、数据库和数据库表操作
    1、MySql的安装和连接测试并给root用户赋密码
    1、SpringMVC+MyBaits实现查询所有
    1、第一个SpringMVC程序
    2.SSH 两个表全套增删改(运动员住宿管理)
  • 原文地址:https://www.cnblogs.com/chunyou128/p/2362955.html
Copyright © 2020-2023  润新知