Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » CListBoxCtl element farbig makieren?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
04.10.2005, 15:16 Uhr
~gomorra
Gast


Hi,

ich habe folgendes problem:

Ich möchte in einem ListboxCtl ein ausgewähltes Element löschen und immer wenn eines gelöscht wurde soll das daruberliegende makiert werden. (In Listbox kein problem: SetCurSel())

Die einzige Möglichkeit ein (CListBoxCtl)Element farbig zu makieren die ich gefunden habe ist SetTextBkColor(), was aber für diesen Zweck nicht geeignet ist.

Kann mir da jemand helfen?

Greetz,
gomorra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.10.2005, 15:18 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


SetSelectionMark?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.10.2005, 15:22 Uhr
gomorra



Hab ich auch versucht, makiert aber nicht farbig sondern nur virtuell. Sorry hatte ich vergessen zu erwähnen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.10.2005, 15:23 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hä? wie "virtuell markieren"? Mach "Auswahl immer zeigen" an und dann mit SetSelectionMark
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
04.10.2005, 15:36 Uhr
gomorra



Auch wenn "Auswahl immer zeigen" gesetzt ist wird das ausgewählte Element nicht farbig makiert. (View = "Report")
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
04.10.2005, 15:38 Uhr
gomorra



Hast du noch ne Idee?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
05.10.2005, 09:11 Uhr
commanderberry




Zitat von gomorra:
Hast du noch ne Idee?


aber ich. Du musst die Liste von Hand zeichnen. Die methode OnCustomDraw ist da recht hilfreich. Hier mal mein Code incl. msdn-quellangabe.
ich färbe die einträge in der liste je nach herkunft des Eintrages.

Wenn du fragen hast, meld dich ruhig.


C++:
/*    this function is for drawing the listitems
    for details: http://msdn.microsoft.com/library/default.asp?
                 url=/library/en-us/shellcc/platform/commctls/custdraw/custdraw.asp
*/

void testview::OnCustomdrawList1 ( NMHDR* pNMHDR, LRESULT* pResult )
{
    NMLVCUSTOMDRAW* pLVCD = reinterpret_cast < NMLVCUSTOMDRAW*>( pNMHDR );
    *pResult = CDRF_DODEFAULT;
    
    
    if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )
    {
        //    call
        *pResult = CDRF_NOTIFYITEMDRAW;
    }
    else {
        if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage ) {
            COLORREF crText;
            // gets the Number of the current item in list
            int iNrInListCtrl = pLVCD->nmcd.dwItemSpec;
            
            //  look up in Array 'm_oaAllLogEntries' (class testview)
            //    to get the OriginFileNumber of this Entry
            LogEntry* leEntry;
            leEntry = (LogEntry*)m_oaAllLogEntries[iNrInListCtrl];
            int iOriginFile = leEntry->GetOriginFile();
            
            //    get the color which is associated with the file
            CCompDoc* pDoc;
            pDoc = (CCompDoc*)GetDocument();
            crText = pDoc->GetLogFile(iOriginFile)->GetFontColor();        
            
            //sets the fontcolor
            pLVCD->clrText = crText;
            *pResult = CDRF_DODEFAULT;            
        }
    }
}



Hoffe es hilft dir.

gruß berry
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: