基于DsoFramer开发MSWord的ocx方式的总结

一、Dsoframer的已有问题

1. 增加接口函数ActivateWithoutFocus,激活word, 但是不抢占焦点;

在dsofauto.cpp中增加接口函数ActivateWithoutFocus

 基于DsoFramer开发MSWord的ocx方式的总结

在dsofcontrol.cpp增加函数UIActivateWithoutFocus(BOOL fForceUIActive)

 基于DsoFramer开发MSWord的ocx方式的总结

 

2. dsofdocobj.cpp 修改IPActivateView函数

 增加activateme操作,这样当commandbar发生改变后能够及时更新

基于DsoFramer开发MSWord的ocx方式的总结

3. dsofdocobj.cpp 修改OnNotifyAppActivate函数

 一定要先设置OnFrameWindowActivate为FALSE,否则会出现在打开两个都包含word ocx的exe时,第二次加载文件后,右击菜单无法弹出的问题

基于DsoFramer开发MSWord的ocx方式的总结

4. dsofcontrol.cpp 修改函数OnAppActivationChange

 在打开弹出式IE窗口时,会出现m_fComponentActive值不准确,导致无法编辑word,需要手动激活

基于DsoFramer开发MSWord的ocx方式的总结

5. dsofcontrol.cpp修改函数ControlWindowProc

 必须加,在鼠标点击是激活控件,因为在xp上会莫名其妙收到deactive的消息,在需要鼠标点击时主动激活

基于DsoFramer开发MSWord的ocx方式的总结

6.增加接口函数UpdateView, 在增加了自定义工具栏按钮后,需要调用,否则自定义的工具栏按钮不能刷新

基于DsoFramer开发MSWord的ocx方式的总结

二、开发心得


上一篇:Windows系统下IE单双多进程分析


下一篇:使用按键精灵+umdh定位内存泄露问题的方式