كيف يمكنني رسم فرشاة النمط مع خلفية شفافة (GDI)؟

StackOverflow https://stackoverflow.com/questions/1013245

  •  06-07-2019
  •  | 
  •  

سؤال

وأنا لا يمكن رسم نمط مع خلفية شفافة. هذا هو بلدي المتكررة:

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 + لدعم الشفافية الكاملة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top