|
阅读:1083回复:0
在VC中怎么创建自定义点symbol,需要使用位图
<P>小弟在做一个自定义symbol的例子,如果自己绘制一些形状已经能实现了,但是想用一些位图表示某些点要素,怎么搞呢.我把关键代码放这里,请指教:</P>
<P>STDMETHOD(SetupDC)(long hDC, double dpi, LPDISPATCH pBaseSym)<BR> {<BR> if(m_pic.LoadBitmap("F:\\a.bmp"))<BR> MessageBox(NULL,"haha","haha",MB_HELP);<BR> CDC *pDC= CDC::FromHandle(HDC(hDC));<BR> pDC->SelectObject(;m_pic);<BR> return S_OK;<BR> }<BR> STDMETHOD(ResetDC)(long hDC)<BR> {<BR> CDC *pDC= CDC::FromHandle(HDC(hDC));<BR> CBitmap *temp = pDC->SelectObject(;m_pic);<BR> temp->DeleteObject();<BR> return S_OK;<BR> }<BR> STDMETHOD(Draw)(long hDC, long x, long y)<BR> {<BR> CDC *pDC= CDC::FromHandle(HDC(hDC));<BR> double pixWidth,pixHeight;<BR> BITMAP* bm;<BR> m_pic.GetBitmap(bm);<BR> pixWidth = bm->bmWidth;<BR> pixHeight = bm->bmHeight;<BR> CDC dcMemory;<BR> dcMemory.CreateCompatibleDC(pDC);<BR> <BR> CBitmap* pOldBitmap = dcMemory.SelectObject(;m_pic);<BR> pDC->BitBlt(x,y,pixWidth,pixHeight,;dcMemory,0,0,SRCCOPY);<BR> dcMemory.SelectObject(pOldBitmap); <BR> return S_OK;<BR> }</P> |
|