سؤال

ولدي فئة فرعية CTabCtrl التي أحاول تجاوز WM_PAINT لأداء الرسم المخصصة. والمشكلة الوحيدة هي، عندما أقوم بتغيير علامة التبويب المحددة، وأحصل على التحف اليسار على الحوار حيث لم يتم مسح الطلاء القديم كود قبل هي التي رسمت القانون الجديد على القمة. (الضوابط التبويب القياسية وعلامة التبويب المحددة تظهر 2 بكسل أكبر من علامات التبويب غير المحددة، وذلك عند تغيير من اختيار لغير المحدد، ويترك لك مع التحف الطلاء السابقة).

ما هو أفضل وسيلة ل"طلاء" هذا المجال؟ لقد حاولت الحصول على DC سيطرة الوالدين وBitBlt'ing أن على DC الطفل، ولكن هذا لا يعمل بسبب الوالد DC يحتوي بالفعل على صورة من هذه السيطرة.

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

المحلول

هل تجاوز رسالة WM_ERASEBACKGROUND كذلك؟ ربما يجب عليك أن تفعل ذلك ومحو المنطقة في السيطرة عليها.

هل يمكن استخدام DrawThemeParentBackground لرسم الخلفية (XP و في وقت لاحق) إذا كنت لا تريد أن تحل محل كل منطق رسم.

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