كيف يمكنني رسم فرشاة النمط مع خلفية شفافة (GDI)؟
سؤال
وأنا لا يمكن رسم نمط مع خلفية شفافة. هذا هو بلدي المتكررة:
bitmap.CreateBitmap(8, 8, 1, 1, &bits)
brush.CreatePatternBrush(&bitmap)
hbrush = pCgrCurrentDC->SelectObject(&brush);
// set text color
TextCol = pCgrCurrentDC->SetTextColor(CgrColourPalRGB);
int oldBkgrdMode = pCgrCurrentDC->SetBkMode(TRANSPARENT);
//draw polygon
pCgrCurrentDC->Polygon(CgrBuffer, n);
وثيقة على MSDN دوسن ' تي يذكر شيئا عن الشفافية. أعتقد أن هذا الوضع يمكن أن تستخدم؟ أم أن هذا الخلل؟
وشكرا!
المحلول
والوضع TRANSPARENT
يعني أن الخلفية لن يتم شغل قبل ويوجه الفرشاة. لكن الفرشاة لا تحتوي على أي بكسل شفافة في ذلك، ويعيد رسم بكسل الخلفية على أي حال. تم تعيين الوسيطة الرابعة في CreateBitmap
إلى 1 في عينتك. وهذا يعني أن الصورة النقطية أحادية اللون.
وتحتاج إلى استخدام نقطية 32 بت لاستخدام الشفافية في الفرش. GDI يدعم الشفافية مع بعض القيود. استخدام GDI + لدعم الشفافية الكاملة.
لا تنتمي إلى StackOverflow