Implementacija spajanja ćelija u Grid kontroli nastavak je razvoja ove kontrole. Spajanje ćelija omogućeno je članom:
CArray<CBHCellRange, CBHCellRange&> m_MergedCellArray;
koji čuva infomacija o spojenim ćelijama. Manipulacija oko spajanja ćelija vrši se preko sljedećih metoda:
//Cell merge support void UnMergedCells(int nStartRow, int nStartCol, int nEndRow,int nEndCol); void MergedCells(int nStartRow, int nStartCol, int nEndRow,int nEndCol); CBHCellRange GetMergedRange(CCellID celMerged);
Prvom metodom rastavljamo jednu ćeliju na osnovne početne ćelije, dok s drugom metodom spajamo ćelije. U oba slučaja argumenti metoda se startne kolone i vrste.
Treća metoda GetMergedRange(CCelID cellMerged) – je metoda koja provjerava i vraća cjelokupan spojeni region u kojem se nalazi data ćelija, a koja je prosljeđena kao argument. U biti sve tri metode manipulišu poljem ćelija koji je definisan na početku.
Ćelije se mogu spajati bilo da se radi o zaleđenim ili standardnim kolonama ili vrstama. Jedino se ne mogu spajati jedna zaleđena i druga obična ćelija.
Način na koji se iscrtavaju spojene ćelije je da se odredi širina i dužina ćelije, stim da se preko navedene metode (GetMergedRange) provjerava da li je dotična ćelija u sastavu grupe ćelija koje su spojene. Na taj način se prva u nizu ćelija iscrta, dok ostale ćelije u grupi spojenih ćelija se ne iscrtavaju.
Source code za ovu verziju možete skinuti ovdje.