posts - 126,  comments - 73,  trackbacks - 0

 #include <oleidl.h>
#include <richedit.h>
#include <richole.h>
//...................
  void   __fastcall   InsertBmpToRich(TRichEdit   *re,   WideString   wstrBmpFile)  
  {  
          IRichEditOle   *RichOle;  
          SendMessage(re->Handle,   EM_GETOLEINTERFACE,   0,   int(&RichOle));  
   
          ILockBytes   *FLockBytes;  
          CreateILockBytesOnHGlobal(0,1,&FLockBytes);  
   
          IStorage   *FStorage;  
          StgCreateDocfileOnILockBytes(FLockBytes,STGM_SHARE_EXCLUSIVE   |  
                          STGM_CREATE   |   STGM_READWRITE,0,&FStorage);  
   
          TFormatEtc   FormatEtc;  
          FormatEtc.cfFormat=0;  
          FormatEtc.ptd=NULL;  
          FormatEtc.dwAspect=DVASPECT_CONTENT;  
          FormatEtc.lindex=-1;  
          FormatEtc.tymed=TYMED_NULL;  
   
          IOleObject   *FOle;  
          OleCreateFromFile(GUID_NULL,   wstrBmpFile,   ::IID_IOleObject,  
                      0,   &FormatEtc,   NULL,   FStorage,   (void**)&FOle);  
          OleSetContainedObject(FOle,   true);  
   
          REOBJECT   ReObject;  
          ZeroMemory(&ReObject,   sizeof(REOBJECT));  
          ReObject.cbStruct=sizeof(REOBJECT);  
          CLSID   xt;  
          FOle->GetUserClassID(&xt);  
          ReObject.clsid=xt;  
          ReObject.cp=REO_CP_SELECTION;  
          ReObject.dvaspect=DVASPECT_CONTENT;  
          ReObject.dwFlags=REO_STATIC   |   REO_BELOWBASELINE;  
          ReObject.dwUser=0;  
          ReObject.poleobj=FOle;  
   
          IOleClientSite     *FClientSite;  
          RichOle->GetClientSite(&FClientSite);  
          ReObject.polesite=FClientSite;  
          ReObject.pstg=FStorage;  
          ReObject.sizel.cx=0;  
          ReObject.sizel.cy=0;  
   
          RichOle->InsertObject(&ReObject);  
  }  
   
   
  //调用方法:  
   
  InsertBmpToRich(RichEdit1,   WideString("D:\\source\\Linux_Image\\header-projects.png"));  

 

From:CSDN->happyct(绿叶对大树的情怀)

posted on 2007-05-25 12:31 我风 阅读(3498) 评论(1)  编辑 收藏 引用

FeedBack:
# re: 另一种CRichEditCtrl中插入图片方法(转载)
2008-03-28 16:59 | zhyang
可以参考CRichEditDoc::UpdateObjectCache()及CRichEditCntrItem的实现。

CRichEditView::OnTimer()会调用它们。见MSDN的WORDPAD例子。  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2007年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(12)

随笔分类

随笔档案

文章档案

相册

收藏夹

C++

MyFavorite

搜索

  •  

积分与排名

  • 积分 - 319788
  • 排名 - 74

最新评论

阅读排行榜

评论排行榜