MFC Ribbon风格编辑框的使用和WebBrowser执行JavaScript代码
来源:互联网 发布:编译一个矩形java 程序 编辑:程序博客网 时间:2024/05/17 17:15
最近在项目中需要使用MFC,我选择了Ribbon风格界面,Ribbon风格有它特殊的编辑控件,例如在Ribbon上放一个编辑控件和一个按钮,当我们双击按钮的时候就会读取编辑框中的数据并且通过WebBrowser控件执行JavaScript代码。
首先我们在HTML页面中写好要调用的JS函数,例如:function search(str),那么我们首先要得到编辑框中的值,由于CMFCRibbonBar是CMainFrame类的保护成员,我们的按钮相应函数应该放在CMainFrame类中。
获得内容的具体代码如下:
在此之前要相应此编辑框的OnUpdateEditXXX(CCmdUI *pCmdUI)事件 加入此句: pCmdUI->Enable(TRUE); 这样编辑框才可以编辑 CMFCRibbonCategory* pRibbonUICategory = m_wndRibbonBar.GetCategory(1); //获得主页,主页的id是1 CMFCRibbonPanel* pPanel = pRibbonUICategory->GetPanel(2) ; //获得第3个面板,从左到右是0,1,2,.. CMFCRibbonEdit* pElem = (CMFCRibbonEdit*)pPanel->GetElement(1); //获得第2个元素,即编辑框的值(也从0开始) //(pElem->GetText()); //获得控件的名字,而不是编辑框的值 location = pElem->GetEditText(); //获得编辑框的值
获得数据后,我们把它放在 CString data中,然后通过函数来执行它。
CFrameWnd* pFrame = (CFrameWnd*)AfxGetMainWnd(); 首先获取View类中的WebBrowser控件变量 CExplorer1* m_WebBrowser = (CExplorer1*)(pFrame->GetActiveView()->GetDlgItem(IDC_EXPLORER1)); IHTMLDocument2* pHTMLDoc = (IHTMLDocument2*)m_WebBrowser->get_Document(); if ( pHTMLDoc != NULL ) { IHTMLWindow2* pHTMLWnd; pHTMLDoc->get_parentWindow( &pHTMLWnd ); if ( pHTMLWnd != NULL ) {CString js_code;js_code.Format(L"goToLocation('%s');",JScode); //JS函数名+参数VARIANT ret; ret.vt = VT_EMPTY;pHTMLWnd->execScript(js_code.AllocSysString(), L"Javascript", &ret);}}
到这,我们的目的就都达到了。。
- MFC Ribbon风格编辑框的使用和WebBrowser执行JavaScript代码
- VS2010/MFC Ribbon风格下CDockablePane的使用
- MFC 设置编辑框风格
- BCGControlBar for MFC创建Office2013风格的Ribbon Bar
- 使用MFC Ribbon遇到的问题
- MFC使用的风格
- MFC Ribbon 使用实例
- vs2010/MFC Ribbon风格修改窗体标题
- VS2010/MFC Ribbon风格创建DockablePane
- 用VB 执行 webbrowser 的javascript
- WebBrowser编辑和查看间的切换
- WPF中使用webbrowser调用javascript代码
- 实现Ribbon风格的窗体
- 实现Ribbon风格的窗体
- 实现Ribbon风格的窗体
- 在WebBrowser中注入并执行javascript代码
- 有关于mfc webbrowser插件的使用
- 有关于mfc webbrowser插件的使用
- 韩国政府官员称中国渔民被打死系偶发事件-韩国-海警-中国渔民
- php header函数的详细解析
- Windows CE的电源管理之三
- 开闭原则
- C++函数声明规定只能为原型形式,真实目的是为了函数重载
- MFC Ribbon风格编辑框的使用和WebBrowser执行JavaScript代码
- ecshop二次开发指南
- [NOIP2002] 选数
- Javascript中最常用的55个经典技巧
- 轩辕兄弟红包!道!我!号!还分我设备!6pk1r
- 2012-10-17 11gR2 concepts page 293 - 326
- citrix 了解
- Apache Rewrite 规则详解
- Error: (vsim-3053) D:/adder/adder_controltb.v(60): Illegal output or inout port connection (port 'P0