سؤال

نحن نضع نافذة التطبيق الشفافة لدينا، على نافذة عملية أخرى. نافذة لدينا تحتوي على بعض عناصر التحكم في الأطفال. نقوم بإنشاء نافذة WS_EX_LAYERED، باستخدام Colorkey للشفافية الانتقائية. النافذة الرئيسية شفافة تماما، لذلك تعمل فقط كحاوية عناصر تحكم الطفل.

هذا يعمل بشكل جيد XP و Vista بدون إيرو. وبعد ومع ذلك، في فيستا مع ايرو النقرات لا تمر عبر المنطقة الشفافة. ماذا نستطيع ان نفعل؟

باستخدام WS_EX_TRANSPARENT فشل، فإنه يجعل عناصر التحكم الخاصة بنا غير صالحة للعمل، بالطبع.

لقد فكرت في إخفاء النافذة الأصلية (WS_SHOWWindow)، لكنني أشعر بالتأكد من أن ذلك سيقوم بإخفاء جميع الأطفال، وأفيك تغيير حجم النافذة إلى الحد الأدنى من الحجم، حيث ستفشل أي مزيج من قصاصات القصاصات والكسولين بطريقة مماثلة ...

شكرا على اي مساعدة.

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

المحلول

خيار آخر هو استخدام منطقة النافذة وليس WS_EX_LAYERED

نصائح أخرى

  • WS_EX_LAYERED هو ما المقابض رسومية شفافية النافذة، انقر عبر هو مجرد تأثير جانبي حدث ذلك للعمل على أنظمة تشغيل النوافذ الأكبر سنا.
  • WS_EX_TRANSPARENT هو ما يجعل الفأر شفاف. وبعد الشفافية الرسومية غير مؤكد مع هذا العلم. يجب أن ترسم عناصر التحكم يدويا (باستخدام وظائف GDI) (مثل في تطبيق DirectX) وقبض على موضع المؤشر باستخدام خطاف منخفض المستوى.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top