एमएफसी और विजुअल स्टूडियो 2010 सी ++ का उपयोग करना। मुझे CListCtrl स्टैंड की कुछ व्यक्तिगत पंक्तियां बनाने का एक तरीका चाहिए (हालांकि मैं पंक्तियों को हाइलाइट करने के लिए अंतर्निहित चयन क्षमता का उपयोग नहीं करना चाहता)। यह पंक्ति पृष्ठभूमि, या फ़ॉन्ट वजन, या संभवतः एक छवि का रंग भी हो सकता है (यदि वह निष्पादक है)।एमएफसी: ListCtrl की व्यक्तिगत पंक्तियों के रंग/साहस को कैसे बदलें?
आदर्श रूप से मैं जानना चाहता हूं कि स्टॉक सूची नियंत्रण का उपयोग करके इसे कैसे किया जाए। हालांकि, यदि यह संभव नहीं है तो मुझे तृतीय पक्ष कोड का उपयोग करने के तरीके के बारे में बताएं।
अद्यतन
यहाँ कोड मैं का उपयोग कर समाप्त हो गया है:
void MyList::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult)
{
NMLVCUSTOMDRAW* cd = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR);
*pResult = CDRF_DODEFAULT;
switch(cd->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYITEMDRAW;
break;
case CDDS_ITEMPREPAINT:
{
int rowNumber = cd->nmcd.dwItemSpec;
bool highlightRow = (bool)GetItemData(rowNumber);
if (highlightRow)
{
COLORREF backgroundColor;
backgroundColor = RGB(255, 0, 0);
cd->clrTextBk = backgroundColor;
}
}
break;
default:
break;
}
}
मेरे मामले में, मैं कुछ भी ItemData के लिए प्रयोग नहीं कर रहा था, तो मैं करने के लिए एक बूलियन मान के साथ कहीं और SetItemData बुलाया इंगित करें कि पंक्ति को हाइलाइट किया जाना चाहिए या नहीं।
है कि वास्तव में मेरे मन में वास्तव में क्या सिर ;-) 'GetItemData (rowNumber)' के बारे में, आप इसे 'CD-> nmcd.lItemlParam' –
@ सर्ज-appTranslator में उपलब्ध नहीं है: आह अच्छा बिंदु , एक कॉल बचाएगा।मुझे यह कोशिश करनी होगी। – User