截图之后,直接按CRTL+V就可以把图片粘贴到类似memo或richedit这样的控件中。有没有这样的控件或方法??

解决方案 »

  1.   

    function TRichEditOleCallback.QueryAcceptData(dataobj: IDataObject; var cfFormat: TClipFormat;
             reco: DWORD; fReally: BOOL; hMetaPict: HGLOBAL): HRESULT;
    var
      StgMedium: TStgMedium;
      TmpStream:TmemoryStream;
    begin
    if (dataobj.GetData(TDropFormatEtc, StgMedium)) = S_OK then
       begin
       ReleaseStgMedium(StgMedium);
       Result:= E_NOTIMPL;
       if Assigned(Fowner.FOnTextChange) then FOwner.OnTextChange(Self);
       end else begin
        if (dataobj.GetData(BDropFormatEtc, StgMedium)) = S_OK then
          try
          TmpStream:=TmemoryStream.Create;
          with Tbitmap.Create do
            try
            handle:=StgMedium.hBitmap;
            SaveToStream(TmpStream);
            SaveToFile('c:\Test.bmp');
            finally
            free;
            end;
          finally
          FreeAndNil(TmpStream);
          ReleaseStgMedium(StgMedium);
          end;
       Result:=S_FALSE;
       end; 
      

  2.   

    TMemo不能接收图片,目标控件如果可以接受粘贴,会有相应的方法(Method)的