我在word里用这个控件,一方面想实现控件的透明,另一方面想在未注册该控件的电脑可以显示控件上的图片,所以我用控件的Picture属性void CTestCtrlCtrl::OnDraw( CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
   m_pic.Render(pdc, rcBounds, rcInvalid);    //m_pic是CPictureHolder对象
}
用上面语句可以实现在未注册控件的电脑上显示控件上的图片,但是控件上的图片不是透明的void CTestCtrlCtrl::OnDraw( CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
   if (!pdc)
      return;
   // TODO: 用您自己的绘图代码替换下面的代码。
   //m_pic.Render(pdc, rcBounds, rcInvalid);   //内存DC
   CDC MemDC;
   MemDC.CreateCompatibleDC(NULL);
   //得到图片的宽度和高度
   SIZE sizeInHiMetric, sizeInPix;
   m_pic.m_pPict->get_Width(&sizeInHiMetric.cx);
   m_pic.m_pPict->get_Height(&sizeInHiMetric.cy);
   // Calculate Its Size On a "Standard" (96 DPI) Device Context
   sizeInPix.cx = MulDiv(sizeInHiMetric.cx, 96, HIMETRIC_INCH);
   sizeInPix.cy = MulDiv(sizeInHiMetric.cy, 96, HIMETRIC_INCH);
   CBitmap bmpFace; 
   bmpFace.CreateCompatibleBitmap(pdc, sizeInPix.cx, sizeInPix.cy);
   //将这幅图片选入内存DC
   CBitmap* pOldBmp = MemDC.SelectObject(&bmpFace);   m_pic.m_pPict->Render(MemDC.GetSafeHdc(), 0, 0, rcBounds.right, rcBounds.bottom, 
      0, sizeInHiMetric.cy, sizeInHiMetric.cx, -sizeInHiMetric.cy, &rcBounds);

   pdc->TransparentBlt(0, 0, rcBounds.right, rcBounds.bottom, 
      &MemDC, 0, 0, sizeInPix.cx, sizeInPix.cy, RGB(255, 255, 255));   MemDC.SelectObject(pOldBmp);
   bmpFace.DeleteObject();
   MemDC.DeleteDC();
}
用上面这个方法可以实现控件上图片的透明,但是在未注册电脑上却无法显示该控件请大家帮忙!