tag 标签: dialog

相关帖子
相关博文
  • 热度 20
    2014-12-23 11:50
    1016 次阅读|
    0 个评论
    Fedora下的图像查看软件Shotwell,当关闭了它的Crop dialog之后,无论怎么点击Crop按钮都打不开它了。 解决方法是: http://askubuntu.com/questions/530252/shotwell-crop-dialog-has-disappeared 执行这个命令即可: gsettings reset-recursively org.yorba.shotwell.crop-settings
  • 热度 16
    2010-5-5 15:08
    2566 次阅读|
    2 个评论
    续上 8. 现在回到我们关注的 GetExternal 的话题 , 我们需要改写 ROleControlSite  中 GetExternal(): // GetExternal STDMETHODIMP ROleControlSite::XDocHostUIHandler::GetExternal(   /* */ IDispatch __RPC_FAR *__RPC_FAR *ppDispatch) {  METHOD_PROLOGUE(ROleControlSite, DocHostUIHandler)     // return the IDispatch we have for extending the object Model  if(our_web_ctrl) {   IDispatch* pDisp = (IDispatch*)(our_web_ctrl-GetIDispatch(TRUE));   *ppDispatch = pDisp;  }            return S_OK; } 这里清楚说明了 , 我们无法从 MFC 获得 IDocHostUIHandler   的 GetExternal 方法 , 所以我们也许不得不借用 Lake 的贡献 ,  核心用法是替换无论 doc/view or dialog 的 AfxEnableControlContainer(),  用我们重写的 IDocHostUIHandler   方法接管一切 . 既然 IDocHostUIHandler   为我们重写 , 这里对 GetExternal() 我们准确进行改写 ,  把  js 激活的 external.ourcall() 事件对应的 handler, 直接指向我们的 CHtmlCtrl 的实例   instance 上 . 9. 最后的步骤 , 就是完成 js 中 window.external.ourcall() 对应的方法 ourcall. 很多网络资源 , 说明对 instance source 的改写 , 例如主动加上 BEGIN_DISPATCH_MAP, EnableAutomation(), DECLARE_DISPATCH_MAP 定义等等 . 我做不好这些 , 因为我不知道有什么 format 我们表达不好, MFC 不喜欢我写的 . 比方说 , 现在我知道 , 进行方法的写作 , 就要加上 afx_msg 前缀 ( 很令人熟悉 ``` 说明方法与属性的机制 , 与 message 的管理机制的一致性 ). 简单而又合适的方法 , 是在构建 based class 为 CHtmlView 的 CHtmlCtrl class 的时候 , 选择 automation, IDE 将为我们加上前面说一切 . 而我们的 ourcall() 方法 , 也用 class 向导来添加到了合适的地方 . 同使用向导 , 完成其他的重载函数的 coding, 没什么两样 , IDE 给了我们直接写作 ourcall() 的便利 . 10. 另外似乎还要注意到一个重要的地方 , microsoft 认为 CHtmlView 存在着 memory leak, 什么据说 5 种成员调用中 , 导致 leak 的发生 ... 我们很无语 , 但是既然有细节的 microsoft support 去  source fix, 照做就好 . http://support.microsoft.com/kb/241750 实现效果 : 我们在 google map 上绘画区域 , 完成后 , 触发 external.report(), 在型参中并输出了对角 2 个 marker 的经纬度给 host 进行处理 . - Allen 发表于 2010.05.01 于电子工程专刊之Allen Zhan's blog 3/3 OVER 补充 在着手改写 GetExternal 的过程中, 我们不可避免遇到了令人烦恼的 redefine 导致编译失败. 尝试了至少 30mins 的各种手段后, 我们放弃了其他的方式, 直接去改写 IDE 的头文件 occimpl.h, 手动给它加上 #ifndef 去避免 link error. 从工程学的角度出发, 这原本是不应该发生的事情(我们应尽量尊重工具, 并不去改动工具, 这样我们所有人都在同样的环境下讨论和交流). 但我们也要埋怨工具的本身... 这片 source 已经陈旧到没有 writer 去补丁一下, 至少放个 ifndef 去防止 redefine? 或者说, IDE 设计便是不许可该文件被暴露与使用的? 基于 dialog 的vc project 与 内嵌java script的相互调用(一) 基于 dialog 的vc project 与 内嵌java script的相互调用(二) 基于 dialog 的vc project 与 内嵌java script的相互调用(三)
  • 热度 15
    2010-5-5 15:07
    2015 次阅读|
    0 个评论
    续上 4.  使用 CHtmlCtrl 并意味我们要接受原作者的一切 source. 实际上 , CHtmlCtrl sample 上有一个显着的特性 , 非常接近我们的应用 . DiLascia 将 script 中对 button 的点击 event, 利用 a pref 的语法 , 设置一个 lias 传递给了 Host.   因为仅仅是加入 CHtmlCtrl 的 sample,  我们就能够实际相应来自于 web page 上任何 button 的 press event.  引人入胜的特性 ... 沉思了一段时间后 , 或者因为我们自身的愚鲁 , 这个特性似乎不能被我们所用 . 首先我们没有也不会设计各种 button 或者甚至是 false button trigger event 来触发我们的行为 . 另外 ,  我们其实打算在任何 time wanted, send this requirement to host for our requirement. That means, we can call host function in any conditions or at any time, and then, we have to pass the propograte parameters to host also. 因此 , 实际上 , 无需的该段功能代码是被我们 disable 掉了 . 5. 现在我们有 CHtmlCtrl 导入了 CHtmlView. 一个 kernel level import step 是 ,  来自 R. Lake   的 http://www.codeguru.com/cpp/w-d/doc_view/chtmlview/article.php/c3253   这是我们在这 2 个工作日中所能找到的最简洁与最清晰明了的思路和例程 . 用来暴露 IDocHostUIHandler  的实现 . 无论如何 , 简洁到 300 rows 不到的 source code, 对我们的 replantment 以及 know why/how 都是非常有帮助的 . Lake 引入了两个 class, 实际上 Allen  觉得很可能他们是一个 , 因为本来 ROleControlSite  应能 can everything. 增加的一个 ROccManager, 怎么看给人的感觉 ,  就是为了在未来的项目拓展中 , 多个 instance 的管理吧 ?  该超级链接已经清楚说明了一切 , Allen 简单的理解就是 , Lake 用他定义的 ROleControlSite,  接管属于了 MFC IDocHostUIHandler   做的一切 . 因为从 source 中对 IDocHostUIHandler   的全部方法进行重写 , 证明了这个说法 . 6. 现在我们回到网络资源上一个常见的说法 , 那就是因为 doc/view 具有 AfxEnableControlContainer(), 因此我们替换上我们自己的 ROleControlSite, 于是便成功实现了这个 " 接管 " 的工作 . 那么我们自己的尝试 , 充分说明 , 并非只有 doc/view struction 许可这样实现 . dialog based 同样也有 AfxEnableControlContainer(), Lake 替换 AfxEnableControlContainer 的 site 参数的技巧 , 对 dialog based project 亦是有效 . 7.  我们引入了 sample 中的 ROleControlSite source, 但是对 Lake 完成这个工作的目的兴趣缺缺 , 毕竟我们不是像 Lake 那样 ,  主要目的是打算 disable 掉 context Menu 的用法 , 不让 user 去选择观看 web page 的 source code... 因此我们没选择 Lake 的其他 source, but 除了 ... 重载 create(), 当然这是一切的提前 , 不是吗 ? 我们列出这份至关重要的代码 ,  通过代码的执行 , 也证明了在 item6 中我们的讨论 : BOOL CMyHtmlCtrl::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) {  // TODO: Add your specialized code here and/or call the base class    //return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);  ///////////////////////////////////  // The following does the same as MFC source, except that  // AfxEnableControlContainer() is called with our handler.  ///////////////////////////////////  CRect c_clientRect;  GetClientRect(c_clientRect);  ///////////////////////////////////  // create the view window:  m_pCreateContext = pContext;  if (!CView::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd,  nID, pContext))  {   return FALSE;  }    AfxEnableControlContainer(m_pROccManager);  ///////////////////////////////////  // create the control window:  if (!m_wndBrowser.CreateControl(CLSID_WebBrowser, lpszWindowName, WS_VISIBLE | WS_CHILD, c_clientRect, this, AFX_IDW_PANE_FIRST))  {   DestroyWindow();   return FALSE;  }  LPUNKNOWN lpUnk = m_wndBrowser.GetControlUnknown();  HRESULT hr = lpUnk-QueryInterface(IID_IWebBrowser2, (void**) m_pBrowserApp);  if (!SUCCEEDED(hr))  {   m_pBrowserApp = NULL;   m_wndBrowser.DestroyWindow();   DestroyWindow();   return FALSE;  }  return TRUE; }   基于 dialog 的vc project 与 内嵌java script的相互调用(一) 基于 dialog 的vc project 与 内嵌java script的相互调用(二) 基于 dialog 的vc project 与 内嵌java script的相互调用(三)
相关资源
  • 所需E币: 3
    时间: 2021-3-17 22:20
    大小: 969.31KB
    上传者: xgp416
    Dialog-从进化论到物联网
  • 所需E币: 0
    时间: 2020-9-26 01:41
    大小: 287.62KB
    上传者: LGWU1995
    Dialog成为Telechips优选电源管理合作伙伴,助力下一代汽车平台
  • 所需E币: 4
    时间: 2019-12-19 14:23
    大小: 56.26KB
    上传者: 2iot
    SmartBondDA14681产品图……
  • 所需E币: 5
    时间: 2019-12-19 14:24
    大小: 649.73KB
    上传者: rdg1993
    开发下一代蓝牙低功耗产品,功能要更齐全,待机要更持久,DialogSmartBond™DA14681让您的产品开发更加轻松。SmartBond™DA14681是全球首款用于可穿戴设备、智能家居和其他可充电设备的单芯片解决方案。该高集成度解决方案支持全部Bluetooth4.2特性。作为SmartBond系列器件之一,它提供最高性能、最低功耗和最小尺寸。它能管理多传感器阵列并提供不间断的感测,在需要的时候提供处理性能,并在不需要的时候节省电量。另外,我们的SmartSnippets™工具还能帮助您优化你的软件,以降低功耗。凭借由系统电源轨、电池充电器和电量计组成的集成电源管理单元,DA14681提供原生充电电池支持,并能为完整的基于传感器的系统供电。同时,专用硬件加密引擎提供银行级安全性(包括苹果HomeKit支持),利用端到端加密来保证个人数据的安全。……