clistctrl: كيفية الحصول على عرض العمود عند استخدام خطوط مختلفة في نفس العمود؟

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

  •  12-09-2019
  •  | 
  •  

سؤال

اشتقت فئة من clistctr يسمى clistctrlcustomdraw، واستخدام معالج nm_customdraw لرسم القائمة.
المشكلة هي أن لدي خطوط مختلفة للعنصر المحدد وعنصر غير محدد، فهي متغيرات عضو لعنصر تحكم القائمة، ولكن عندما أستخدم

m_list.SetColumnWidth(iCol, LVSCW_AUTOSIZE); 
int nTextWidth = m_list.GetColumnWidth(iCol);
m_list.SetColumnWidth(iCol, LVSCW_AUTOSIZE_USEHEADER);
int nColTitleWidth = m_list.GetColumnWidth(iCol); 
m_list.SetColumnWidth(iCol,max(nTextWidth, nColTitleWidth));

لحساب عرض العمود، تستخدم القائمة خط العنصر غير المحدد، وهو ما ليس واسع
كخط العنصر المحدد (الخط الغامق)، لذلك سيكون هناك بعض المحتوى لا يمكن إظهاره في
البند المحدد حتى لديهم نفس المحتوى.

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

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

المحلول

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

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