langyan8973
路人甲
路人甲
  • 注册日期2006-07-12
  • 发帖数90
  • QQ
  • 铜币456枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1291回复:0

[求助]关于符号的预览

楼主#
更多 发布于:2007-07-09 11:08
<P>下面代码是本人参照别人的代码改的,目的是想实现把符号库里面的符号转成位图,可是不知道为什么在执行hr=pStyleGlyCs->Preview(pStyleGlyItem,(OLE_EHANDLE)hMemDC,;Rect);的时候总是不成功返回的hr总是等于E_POINTER哪位高手做过的帮帮忙吧,多谢了。</P>
<P>HBITMAP CListDlg::StyleGalleryItemToBmp(int iWidth, int iHeight, IStyleGalleryClassPtr pStyleGlyCs, IStyleGalleryItemPtr pStyleGlyItem)<BR>{<BR> HRESULT hr;<BR> RECT rect = {0,0,iWidth,iHeight};</P>
<P> CClientDC   dc(this);<BR> HDC hDC = dc.m_hDC;<BR> HDC hMemDC = CreateCompatibleDC(hDC);<BR> HBITMAP hBitmap = CreateCompatibleBitmap(hDC, iWidth,iHeight);<BR> HBITMAP hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap);</P>
<P> HBRUSH hBrush = CreateSolidBrush(PALETTERGB(255,255,255));<BR> HBRUSH hOldBrush = (HBRUSH)SelectObject(hMemDC, hBrush);<BR> FillRect(hMemDC, ;rect, hBrush);//paint a white background.<BR> tagRECT Rect;<BR> Rect.top=0;<BR> Rect.left=0;<BR> Rect.right=iWidth;<BR> Rect.bottom=iHeight;</P>
<P> hr=pStyleGlyCs->Preview(pStyleGlyItem,(OLE_EHANDLE)hMemDC,;Rect);</P>
<P> SelectObject(hDC, hOldBitmap);<BR> SelectObject(hDC, hOldBrush);<BR> DeleteObject(hBrush);</P>
<P> ::ReleaseDC(NULL,hMemDC);<BR> ::ReleaseDC(NULL,hDC);<BR> DeleteDC(hMemDC);<BR> DeleteDC(hDC);<BR> return hBitmap;<BR>}</P>
喜欢0 评分0
游客

返回顶部