zoukankan      html  css  js  c++  java
  • 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可以从网上下载



  • 相关阅读:
    天地图OGC WMTS服务规则
    【异常】VS中运行HTTP 无法注册URL
    【TextBox】重写右键菜单
    【ContextMenu】DataContext不自动更新
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
  • 原文地址:https://www.cnblogs.com/chunyou128/p/2362955.html
Copyright © 2011-2022 走看看