BHGridCtrl -III dio. Implementacija spajanja ćelija (merge cells)


image

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.

About Bahrudin Hrnjica

PhD in Mechanical Engineering, Microsoft MVP for .NET. Likes .NET, Math, Mechanical Engineering, Evolutionary Algorithms, Blogging.

Posted on 08/10/2009, in BHGridCtrl, C/C++, Programiranje and tagged . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s