首先,打印非填充图形和有填充但是没有透明度的图形时都没有问题。虽然代码不一样,但是至少可以说明打印机DC本身是没有问题的。而在打印有透明度的图形的时候使用如下代码段,结果就是什么也没有打印出来。我自己DEBUG的结论是Graphics graphics(hDrawDC)失败造成的,但是不知道原因。请大家说下怎么解决这个问题。只要能打印出来就好。初次弄打印的问题,请赐教,谢谢。UINT m_uTransparent(透明度), m_uColorRed, m_uColorGreen, m_uColorBlue,
     m_uColorRedP, m_uColorGreenP, m_uColorBlueP;*pa = (Point *)malloc(sizeof(Point)*gWinPntNum);(多边形节点数组)for(int i=0; i<gWinPntNum; i++){
pa[i].X = gWinPntBuf[i].x;
pa[i].Y = gWinPntBuf[i].y;
}COLORREF cfill = gPalette.GetColor(pEnt->iColor);
m_uTransparent = m_iTS_Level;Graphics graphics(hDrawDC);(DEBUG发现Last Result=  out of memory, NATIVE Graphics = NULL)m_uColorRed   =  cfill % 256;
m_uColorGreen =  (cfill >> 8) % 256;
m_uColorBlue  =  cfill >> 16;
m_uColorRedP   =  cfill % 256;
m_uColorGreenP =  (cfill >> 8) % 256;
m_uColorBlueP  =  cfill >> 16;SolidBrush blackBrush(Color(m_uTransparent, m_uColorRed, m_uColorGreen, m_uColorBlue));graphics.SetSmoothingMode(SmoothingModeHighSpeed);Status out = graphics.FillPolygon(&blackBrush, pa, gWinPntNum);(绘制内部,返回值是无效参数,不是OK,应该是由于graphics本身失败造成的)if(m_iShowPolygonOutline){
Pen blackPen(Color(255, m_uColorRedP, m_uColorGreenP, m_uColorBlueP), 1);
graphics.DrawPolygon(&blackPen, pa, gWinPntNum);}(绘制外框)