从richedit中导出bmp图片保存,已完成。
可是如何从richedit中导出jpg、gif等图片保存?
另外,在接收端从richedit中导出bmp图片保存后,显示的图片发生了水平循环移位,很蹊跷,何故?
可是如何从richedit中导出jpg、gif等图片保存?
另外,在接收端从richedit中导出bmp图片保存后,显示的图片发生了水平循环移位,很蹊跷,何故?
解决方案 »
- 修改系统注册表后,是否需要向系统发消息,通知改变
- 求Virtual PC 2007 群,工具,Up有分
- 高分求教各位oledbce,oledb的CreateAccessor问题
- ctoolbar和ctoolbarctrl有什么区别
- 请问:在MFC里怎样调用串口获得数据
- 为什么我的tab控件没有显示(急)-在线
- 高分求助!怎么把wave文件播放到Modem中去?
- 怎么在反编译程序的时候把程序中的气球提示给改了那?谢谢啊。
- WinSock库函数中结构 ent 有什么含义?
- 问两个关于计算机使用的简单问题
- 【100分求教】IServerXMLHTTPRequest问题
- 如何在VC/MFC工程里用CWebBrowser读取网页搜索框里的内容?
#define AFX_OLERICHEDITCTRL_H__3DFF15EE_7336_4297_9620_7F00B611DAA1__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// OleRichEditCtrl.h : header file
//
#include <afxodlgs.h>
#include <afxpriv.h>
#include "oleimpl2.h"
//#include "Richole.h"//#include <richole.h>#include "Richole.h"
#include <afxole.h>/////////////////////////////////////////////////////////////////////////////
// COleRichEditCtrl windowclass COleRichEditCtrl : public CRichEditCtrl
{
// Construction
public:
COleRichEditCtrl();
virtual ~COleRichEditCtrl(); long StreamInFromResource(int iRes, LPCTSTR sType);protected:
static DWORD CALLBACK readFunction(DWORD dwCookie,
LPBYTE lpBuf, // the buffer to fill
LONG nCount, // number of bytes to read
LONG* nRead); // number of bytes actually read interface IExRichEditOleCallback; // forward declaration (see below in this header file) IExRichEditOleCallback* m_pIRichEditOleCallback;
BOOL m_bCallbackSet;
interface IExRichEditOleCallback : public IRichEditOleCallback
{
public:
IExRichEditOleCallback();
virtual ~IExRichEditOleCallback();
int m_iNumStorages;
IStorage* pStorage;
DWORD m_dwRef; virtual HRESULT STDMETHODCALLTYPE GetNewStorage(LPSTORAGE* lplpstg);
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void ** ppvObject);
virtual ULONG STDMETHODCALLTYPE AddRef();
virtual ULONG STDMETHODCALLTYPE Release();
virtual HRESULT STDMETHODCALLTYPE GetInPlaceContext(LPOLEINPLACEFRAME FAR *lplpFrame,
LPOLEINPLACEUIWINDOW FAR *lplpDoc, LPOLEINPLACEFRAMEINFO lpFrameInfo);
virtual HRESULT STDMETHODCALLTYPE ShowContainerUI(BOOL fShow);
virtual HRESULT STDMETHODCALLTYPE QueryInsertObject(LPCLSID lpclsid, LPSTORAGE lpstg, LONG cp);
virtual HRESULT STDMETHODCALLTYPE DeleteObject(LPOLEOBJECT lpoleobj);
virtual HRESULT STDMETHODCALLTYPE QueryAcceptData(LPDATAOBJECT lpdataobj, CLIPFORMAT FAR *lpcfFormat,
DWORD reco, BOOL fReally, HGLOBAL hMetaPict);
virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode);
virtual HRESULT STDMETHODCALLTYPE GetClipboardData(CHARRANGE FAR *lpchrg, DWORD reco, LPDATAOBJECT FAR *lplpdataobj);
virtual HRESULT STDMETHODCALLTYPE GetDragDropEffect(BOOL fDrag, DWORD grfKeyState, LPDWORD pdwEffect);
virtual HRESULT STDMETHODCALLTYPE GetContextMenu(WORD seltyp, LPOLEOBJECT lpoleobj, CHARRANGE FAR *lpchrg,
HMENU FAR *lphmenu);
};
public:// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(COleRichEditCtrl)
protected:
virtual void PreSubclassWindow();
//}}AFX_VIRTUAL// Implementation
public: void InsertBitmap(HBITMAP hBitmap);
void InsertBitmap(CString strFileName);
BOOL SaveBmpDataToFile(HBITMAP hBitmap, CString FileName); //FileName°üÀ¨Â·¾¶ºÍÎļþµÄÈ«Ãû
static DWORD CALLBACK CStringFormatToRTF(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb);
static DWORD CALLBACK RTFFormatToCString(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb);
void SetRTF(CString strRTF); void SetRTFa(CString strRTF); CString GetRTF();
afx_msg void GetOptions(); // Generated message map functions
protected:
LPSTORAGE m_lpStorage; // provides storage for m_lpObject
LPLOCKBYTES m_lpLockBytes; // part of implementation of m_lpStorage
LPOLEOBJECT m_lpObject; // in case you want direct access to the OLE object
LPVIEWOBJECT2 m_lpViewObject;// IViewObject for IOleObject above //{{AFX_MSG(COleRichEditCtrl)
afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
// afx_msg void OnCopy() { Copy(); }
afx_msg void OnCopy();
afx_msg void OnCut() { Cut(); }
afx_msg void OnPaste() { Paste(); }
afx_msg void OnSelectall() { SetSel(0, -1); }
afx_msg void OnUndo() { Undo(); }
afx_msg void OnClear() { Clear(); }
afx_msg void OnSelectfont();
afx_msg void OnFromfile();
afx_msg void OnSavefile();//afx_msg void GetOptions();
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
//}}AFX_MSG DECLARE_MESSAGE_MAP()
};///////////////////////////////////////////////////////////////////////////////{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif // !defined(AFX_OLERICHEDITCTRL_H__3DFF15EE_7336_4297_9620_7F00B611DAA1__INCLUDED_)
FORMATETC fm;
fm.cfFormat =CF_BITMAP;
fm.ptd = NULL; // Target Device = Screen
fm.dwAspect = DVASPECT_TRANSPARENT; // Level of detail = Full content
fm.lindex = -1; // Index = Not applicaple
fm.tymed = TYMED_GDI ;
stg.tymed = TYMED_GDI; // Storage medium = HBITMAP handle
HRESULT hr = pDataObject->GetData( &fm, &stg );
图片为jpg、gif时hr返回值总是不对,无法进行保存。
请指教。
所以就无法导出了