سؤال

أنا قادر حاليًا على تعيين نمط عرض القائمة عبر طريقة ListView_SetExtenedListViewStyle، ولكن هذا يجعل جميع الأعمدة لها نفس النمط.هدفي هو تعديل عمود واحد فقط (للحصول على نمط LVS_EX_UNDERLINEHOT|LVS_EX_UNDERLINECOLD|LVS_EX_TWOCLICKACTIVATE بشكل أساسي).

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

يحرر:أو حتى طريقة لرسم الخلية حسب الطلب؟

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

المحلول

إذا كنت تستخدم WTL الإطار ثم هناك فئة CCustomDraw مفيدة جدا التي يمكنك استخدامها لاعتراض الرسائل بسهولة NM_CUSTOMDRAW ورسم المحتوى listview الخاصة بك.

وهناك مقال CodeProject جيدة على العرف رسم باستخدام WTL هنا .

نصائح أخرى

يوجد برنامج تعليمي حول استخدام عنصر تحكم ListView ضمن Win32 API CodeProject.

ابحث عن الجزء المسمى ---ألوان العنصر الفرعي--- تحت "ألوان عرض القائمة".هناك سترى الكود التالي، حيث يجب عليك وضع استدعاء ListView_SetExtenedListViewStyle()‎ المقابل داخل بيان الحالة:

case CDDS_SUBITEM | CDDS_ITEMPREPAINT: 
        {
            switch(lplvcd->iSubItem)
            {
                case 0: // Your first column
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top