<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: question about custom symbol in arcmap in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/question-about-custom-symbol-in-arcmap/m-p/636991#M17157</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Original User: ts_chen&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Unfortunately lots of things change between shapefiles and geodatabases.&amp;nbsp; Like brackets and quotation marks. &lt;BR /&gt;&lt;BR /&gt;Kind of late but you best best with custom symbols is to stick with using Fonts then they will work with shapefiles, geodatabases, sde (yea things change again when going to sde) and ArcGIS online.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It can be render correct when I using gdi or gdi+&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 05 Apr 2013 23:34:57 GMT</pubDate>
    <dc:creator>Anonymous User</dc:creator>
    <dc:date>2013-04-05T23:34:57Z</dc:date>
    <item>
      <title>question about custom symbol in arcmap</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/question-about-custom-symbol-in-arcmap/m-p/636989#M17155</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I write a custom symbol component like logomarker symbol ,but i use agg instead of gdi. When I open shape files in arcmap and use my custom symbol to render the data, It is successful. However , when I open geodatabase files,as the same as shape files, It will be fail. It render blank. When I load this data again. It will render with the default symbol correct. Why?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; I use aggplus which is encapsulated like GDI+. the main code is follow(full code about main class in attachment):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Aggplus::Graphics *m_pGraphics;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;STDMETHODIMP CCartoSymbolMarker::SetupDC(OLE_HANDLE hDC, ITransformation *Transformation)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; m_ipTrans = Transformation;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; m_pGraphics = Graphics::FromHDC((HDC)hDC);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; return S_OK;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;STDMETHODIMP CCartoSymbolMarker::Draw(IGeometry *Geometry)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; if (!Geometry)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; return E_POINTER;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; IPointPtr spPoint(Geometry);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; if (spPoint == NULL)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; return E_FAIL;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; double x=0, y=0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; FromMapPoint((IDisplayTransformation*)m_ipTrans, spPoint, &amp;amp;x, &amp;amp;y); &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; Pen myPen(Color(255,0,0,255), 1);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; m_pGraphics-&amp;gt;DrawRectangle(&amp;amp;myPen, x, y, 10, 20);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; return S_OK;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;STDMETHODIMP CCartoSymbolMarker::ResetDC()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; delete m_pGraphics;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; m_pGraphics = NULL;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; return S_OK;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Aggplus Graphics class:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Graphics *Graphics::FromHDC(HDC hdc) { return(new Graphics(hdc)); }&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Graphics::Graphics(HDC hdc) : m_dwConfigFlags(0)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; RECT clipBox;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ::GetClipBox(hdc, &amp;amp;clipBox);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; int nW=clipBox.right-clipBox.left;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; int nH=clipBox.bottom-clipBox.top;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ASSERT(nW&amp;gt;0 &amp;amp;&amp;amp; nH&amp;gt;0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; z_Create(nW, nH, -4*nW, NULL);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; m_dwConfigFlags|=def_flag_G_FromHDC;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; m_fromhdc_HDC=hdc;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; m_fromhdc_X=clipBox.left;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; m_fromhdc_Y=clipBox.top;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Graphics::~Graphics()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#ifdef def_AP_Update_Dc_at_End&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; if(m_dwConfigFlags &amp;amp; def_flag_G_FromHDC)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; BITMAPINFO hDib;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; memset(&amp;amp;hDib, 0, sizeof(BITMAPINFO));&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hDib.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hDib.bmiHeader.biWidth = m_dwWidth;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hDib.bmiHeader.biHeight = m_dwHeight;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hDib.bmiHeader.biPlanes = 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hDib.bmiHeader.biBitCount = 32;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hDib.bmiHeader.biCompression = BI_RGB;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; hDib.bmiHeader.biSizeImage = m_dwWidth * m_dwHeight * 4;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#ifndef _X_NODCAlpha_&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; LPVOID pBits;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; HBITMAP hBitmap = CreateDIBSection(m_fromhdc_HDC, &amp;amp;hDib, DIB_RGB_COLORS, &amp;amp;pBits, NULL, 0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; if(!hBitmap) ASSERT(FALSE);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; memcpy(pBits, buffer, m_dwWidth * m_dwHeight * 4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; HDC mdc=CreateCompatibleDC( m_fromhdc_HDC );&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; if(!mdc) ASSERT(FALSE);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; HBITMAP hbmOld=(HBITMAP)::SelectObject(mdc, hBitmap);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; BLENDFUNCTION bln;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; bln.BlendOp=AC_SRC_OVER;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; bln.BlendFlags=0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; bln.SourceConstantAlpha=255;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; bln.AlphaFormat=AC_SRC_ALPHA;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; AlphaBlend(m_fromhdc_HDC, m_fromhdc_X, m_fromhdc_Y, m_dwWidth, m_dwHeight, mdc, 0, 0, m_dwWidth, m_dwHeight, bln);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; //BitBlt(m_fromhdc_HDC, m_fromhdc_X, m_fromhdc_Y, m_dwWidth, m_dwHeight, mdc, 0, 0, SRCCOPY);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ::SelectObject(mdc, hbmOld);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; //::GdiFlush();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; DeleteDC(mdc);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ::DeleteObject(hBitmap);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; #else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; SetDIBitsToDevice(m_fromhdc_HDC, m_fromhdc_X, m_fromhdc_Y, m_dwWidth, m_dwHeight,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; 0, 0, 0, m_dwHeight,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; buffer, &amp;amp;hDib, DIB_RGB_COLORS);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; #endif //_X_NODCAlpha_&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif //def_AP_Update_Dc_at_End&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; delete(m_agg_pREN);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; delete(m_agg_ppixf);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; if(!(m_dwConfigFlags&amp;amp;def_flag_G_ExtBuffer))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; { &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; delete(buffer); &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;result:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;custom symbol in arcmap symbol selector&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[ATTACH=CONFIG]23246[/ATTACH]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;shape file use my custom symbol, correct&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[ATTACH=CONFIG]23243[/ATTACH]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;geodatabase use my custom symbol. fail and blank&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[ATTACH=CONFIG]23244[/ATTACH]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;load the data again , it render correct with defalut symbol, but data is twice&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[ATTACH=CONFIG]23245[/ATTACH]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 05 Apr 2013 14:22:05 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/question-about-custom-symbol-in-arcmap/m-p/636989#M17155</guid>
      <dc:creator>taishengchen</dc:creator>
      <dc:date>2013-04-05T14:22:05Z</dc:date>
    </item>
    <item>
      <title>Re: question about custom symbol in arcmap</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/question-about-custom-symbol-in-arcmap/m-p/636990#M17156</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Unfortunately lots of things change between shapefiles and geodatabases.&amp;nbsp; Like brackets and quotation marks. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Kind of late but you best best with custom symbols is to stick with using Fonts then they will work with shapefiles, geodatabases, sde (yea things change again when going to sde) and ArcGIS online.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;I write a custom symbol component like logomarker symbol ,but i use agg instead of gdi. When I open shape files in arcmap and use my custom symbol to render the data, It is successful. &lt;SPAN style="color:#ff0000;"&gt;However , when I open geodatabase files,as the same as shape files, It will be fail.&lt;/SPAN&gt; It render blank. When I load this data again. It will render with the default symbol correct. Why?&lt;BR /&gt;&lt;BR /&gt; I use aggplus which is encapsulated like GDI+. the main code is follow(full code about main class&amp;nbsp; in attachment):&lt;BR /&gt;&lt;BR /&gt;Aggplus::Graphics *m_pGraphics;&lt;BR /&gt;&lt;BR /&gt;STDMETHODIMP CCartoSymbolMarker::SetupDC(OLE_HANDLE hDC, ITransformation *Transformation)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_ipTrans = Transformation;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_pGraphics = Graphics::FromHDC((HDC)hDC);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return S_OK;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;STDMETHODIMP CCartoSymbolMarker::Draw(IGeometry *Geometry)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!Geometry)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return E_POINTER;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IPointPtr spPoint(Geometry);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (spPoint == NULL)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return E_FAIL;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; double x=0, y=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FromMapPoint((IDisplayTransformation*)m_ipTrans, spPoint, &amp;amp;x, &amp;amp;y); &lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pen myPen(Color(255,0,0,255), 1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_pGraphics-&amp;gt;DrawRectangle(&amp;amp;myPen, x, y, 10, 20);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return S_OK;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;STDMETHODIMP CCartoSymbolMarker::ResetDC()&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete m_pGraphics;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_pGraphics = NULL;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return S_OK;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="color:#FF0000;"&gt;Aggplus Graphics class:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;Graphics *Graphics::FromHDC(HDC hdc) { return(new Graphics(hdc)); }&lt;BR /&gt;&lt;BR /&gt;Graphics::Graphics(HDC hdc) : m_dwConfigFlags(0)&lt;BR /&gt;{&lt;BR /&gt; RECT clipBox;&lt;BR /&gt; ::GetClipBox(hdc, &amp;amp;clipBox);&lt;BR /&gt; int nW=clipBox.right-clipBox.left;&lt;BR /&gt; int nH=clipBox.bottom-clipBox.top;&lt;BR /&gt; ASSERT(nW&amp;gt;0 &amp;amp;&amp;amp; nH&amp;gt;0);&lt;BR /&gt; z_Create(nW, nH, -4*nW, NULL);&lt;BR /&gt; m_dwConfigFlags|=def_flag_G_FromHDC;&lt;BR /&gt; m_fromhdc_HDC=hdc;&lt;BR /&gt; m_fromhdc_X=clipBox.left;&lt;BR /&gt; m_fromhdc_Y=clipBox.top;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Graphics::~Graphics()&lt;BR /&gt;{&lt;BR /&gt;#ifdef def_AP_Update_Dc_at_End&lt;BR /&gt; if(m_dwConfigFlags &amp;amp; def_flag_G_FromHDC)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; BITMAPINFO hDib;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; memset(&amp;amp;hDib, 0, sizeof(BITMAPINFO));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; hDib.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; hDib.bmiHeader.biWidth = m_dwWidth;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; hDib.bmiHeader.biHeight = m_dwHeight;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; hDib.bmiHeader.biPlanes = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; hDib.bmiHeader.biBitCount = 32;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; hDib.bmiHeader.biCompression = BI_RGB;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; hDib.bmiHeader.biSizeImage = m_dwWidth * m_dwHeight * 4;&lt;BR /&gt;#ifndef _X_NODCAlpha_&lt;BR /&gt;&amp;nbsp;&amp;nbsp; LPVOID pBits;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; HBITMAP hBitmap = CreateDIBSection(m_fromhdc_HDC, &amp;amp;hDib, DIB_RGB_COLORS, &amp;amp;pBits, NULL, 0);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if(!hBitmap) ASSERT(FALSE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; memcpy(pBits, buffer, m_dwWidth * m_dwHeight * 4);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HDC mdc=CreateCompatibleDC( m_fromhdc_HDC );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!mdc) ASSERT(FALSE);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HBITMAP hbmOld=(HBITMAP)::SelectObject(mdc, hBitmap);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BLENDFUNCTION bln;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bln.BlendOp=AC_SRC_OVER;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bln.BlendFlags=0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bln.SourceConstantAlpha=255;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bln.AlphaFormat=AC_SRC_ALPHA;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AlphaBlend(m_fromhdc_HDC, m_fromhdc_X, m_fromhdc_Y, m_dwWidth, m_dwHeight, mdc, 0, 0, m_dwWidth, m_dwHeight, bln);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //BitBlt(m_fromhdc_HDC, m_fromhdc_X, m_fromhdc_Y, m_dwWidth, m_dwHeight, mdc, 0, 0, SRCCOPY);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ::SelectObject(mdc, hbmOld);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //::GdiFlush();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeleteDC(mdc);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ::DeleteObject(hBitmap);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetDIBitsToDevice(m_fromhdc_HDC, m_fromhdc_X, m_fromhdc_Y, m_dwWidth, m_dwHeight,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0, 0, 0, m_dwHeight,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer, &amp;amp;hDib, DIB_RGB_COLORS);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; #endif //_X_NODCAlpha_&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;#endif //def_AP_Update_Dc_at_End&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt; delete(m_agg_pREN);&lt;BR /&gt; delete(m_agg_ppixf);&lt;BR /&gt; if(!(m_dwConfigFlags&amp;amp;def_flag_G_ExtBuffer))&lt;BR /&gt; { &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete(buffer); &lt;BR /&gt; }&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="color:#ff0000;"&gt;result:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;custom symbol in arcmap symbol selector&lt;BR /&gt;&lt;BR /&gt;[ATTACH=CONFIG]23246[/ATTACH]&lt;BR /&gt;&lt;BR /&gt;shape file use my custom symbol, correct&lt;BR /&gt;&lt;BR /&gt;[ATTACH=CONFIG]23243[/ATTACH]&lt;BR /&gt;&lt;BR /&gt;geodatabase use my custom symbol. fail and blank&lt;BR /&gt;&lt;BR /&gt;[ATTACH=CONFIG]23244[/ATTACH]&lt;BR /&gt;&lt;BR /&gt;load the data again , it render correct with defalut symbol, but data is twice&lt;BR /&gt;&lt;BR /&gt;[ATTACH=CONFIG]23245[/ATTACH]&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 05 Apr 2013 19:13:55 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/question-about-custom-symbol-in-arcmap/m-p/636990#M17156</guid>
      <dc:creator>RobertBorchert</dc:creator>
      <dc:date>2013-04-05T19:13:55Z</dc:date>
    </item>
    <item>
      <title>Re: question about custom symbol in arcmap</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/question-about-custom-symbol-in-arcmap/m-p/636991#M17157</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Original User: ts_chen&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Unfortunately lots of things change between shapefiles and geodatabases.&amp;nbsp; Like brackets and quotation marks. &lt;BR /&gt;&lt;BR /&gt;Kind of late but you best best with custom symbols is to stick with using Fonts then they will work with shapefiles, geodatabases, sde (yea things change again when going to sde) and ArcGIS online.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It can be render correct when I using gdi or gdi+&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 05 Apr 2013 23:34:57 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/question-about-custom-symbol-in-arcmap/m-p/636991#M17157</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2013-04-05T23:34:57Z</dc:date>
    </item>
    <item>
      <title>Re: question about custom symbol in arcmap</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/question-about-custom-symbol-in-arcmap/m-p/636992#M17158</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;It can be render correct when I using gdi or gdi+&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;My entire code use aggplus is in attachment&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 06 Apr 2013 07:39:07 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/question-about-custom-symbol-in-arcmap/m-p/636992#M17158</guid>
      <dc:creator>taishengchen</dc:creator>
      <dc:date>2013-04-06T07:39:07Z</dc:date>
    </item>
  </channel>
</rss>

