سؤال

لدي نموذج طبقات مع مجموعة نمط WS_EX_LAYERED أنماط. لقد قمت بإنشاء عنصر تحكم "تحرير" الطفل باستخدام وظيفة CreateWindowEx (...) وظيفة API؛ التحكم في كونه هناك ولكن لم يتم رسمه ولا يظهر أي شيء في النموذج.

أعرف أنه عند استخدام نمط WS_EX_LAYERED على نافذة أعلى، لا يتم إرسال رسالة WM_PAINT بعد الآن ولا تستقبلها عناصر التحكم في الأطفال حتى لا تظهر ذلك.

يرجى مراعاة أنه يتم تعيين عتامة النموذج إلى 255 ويتم رسم الخلفية مع صورة شفافة باستخدام UpdateLayeredWindow (...) API.

عندما أحضر الماوس فوق عنصر تحكم تحرير، يظهر مؤشر النص ويمكنني نسخ النص داخله.

أعتقد أن المشكلة التي يجب علي التعامل معها هي جعل التحكم بطريقة أو بأخرى لقبول طلاء المستخدم.

لقد حاولت طلاء التحكم في نفس التقنية مثل النموذج، ولقد قمت بإنشاء DC متوافقا من النموذج، لكنني لا أعرف ما إذا كان ذلك ممكنا إذا كان هذا ممكنا، فإن تحكمي لا يزال غير رسمي.

يجب أن تعمل إذا أرسلت WM_PrintClient لهذا التحكم؟ في هذه الحالة، يجب أن تكون العاصمة النموذج الأصلي الطبقات؟ لقد حاولت أيضا هذا لكنني لم أستطع عملها.

نموذج عادي: http://img580.imageshack.us/i/formy.png/

نموذج الطبقات: http://img6.imageshack.us/i/layeredform.png/

سؤالي هو كيف أقوم بإجراء تحكم التحرير الخاص بي قبول الطلاء ألفا المخلوطة؟ كيف أرسم تحكم ألفا المخلوط على النموذج الطبقي؟

هل كانت مفيدة؟

المحلول

في النهاية وجدت طريقة للقيام بذلك،

ما كان علي فعله هو الحصول على صورة نقطية لكل عنصر تحكم واسحبها على خلفية النموذج، لذلك ... عندما أطبقت updatelayeredwindow للنموذج، احتوى الصورة النقطية النموذج على جميع عناصر التحكم،

ما زلت أعرف ما إذا كانت هذه هي أفضل الممارسات على الرغم من

الطريقة تعمل بشكل جيد ولكن لا بد لي من مثالية وتضيف المزيد من الضوابط + ألفا للمخلفين .. من ناحية أخرى وظيفة

هنا هو: http://img84.imageshack.us/img84/3172/73845647.png

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