أبسط طريقة لتغيير ألوان عرض القائمة وعرض الشجرة

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

  •  09-06-2019
  •  | 
  •  

سؤال

أحاول العثور على طريقة بسيطة لتغيير لون النص والخلفية listview و treeview عناصر التحكم في WTL أو رمز Win32 العادي.

لا أريد حقًا أن أضطر إلى تنفيذ رسم المالك الكامل لعناصر التحكم هذه، ما عليك سوى تغيير الألوان المستخدمة.

أريد التأكد من أن الصور لا تزال مرسومة بالشفافية المناسبة.

أي اقتراحات؟

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

المحلول

ألق نظرة على وحدات الماكرو التالية:

ListView_SetBkColor
ListView_SetTextColor

TreeView_SetBkColor
TreeView_SetTextColor

نصائح أخرى

هناك أيضًا طرق مناسبة لل CListViewCtrl و CTreeViewCtrl فئات المجمع:

  • GetBkColor
  • SetBkColor

قد ترغب أيضًا في إلقاء نظرة على CCustomDraw::OnItemPrePaint الخاص بـ WTL (هذا إذا كنت بحاجة إلى التحكم في رسم العناصر الفردية)

مقالة جيدة تصف هذه العملية هنا

لقد مر وقت طويل منذ أن استخدمت واجهة برمجة التطبيقات win32 مباشرة، ولكن أعتقد أنه إذا تعاملت مع رسالة WM_ERASEBACKGROUND لعنصر التحكم الخاص بك، فيمكنك استخدام fillRect() في المعالج الخاص بك لطلاء الخلفية باستخدام أي لون تريده.

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