Is there a way to get a pointer to a style object instead of a copy? GetStyleRowCol() only gets a copy.

One part of the style object that is displayed in the grid is stored in the CGXData structure. Take a look at CGXData::GetStyleRowCol how to get a pointer to that object. What you can do is implement a method similar to CGXData::GetStyleRowCol that returns a pointer to a style object.

Objective Grid intentionally does not provide a method that returns a pointer to the style objects that are stored in CGXData. The objects in CGXData don't reflect those attributes you apply to base styles, column and row styles etc. As you know, ComposeStyleRowCol loads all base styles at runtime.

If you access the style objects directly you loose the flexibility to change attributes in the base styles. Also, your CGXGridCore::GetStyleRowCol override will not have a chance to change the style object before you access it. That's why we decided not to offer direct access to these objects.

Returning a copy of the style object indeed costs more time but this is the cost for the flexibility of Objective Grid. Take formula support for example. Only minor changes were necessary for existing applications and we could provide a nearly 100% source code compatible new version of Objective Grid with formula support.

If you want to give up that flexibility please do that only in really time-critical operations, e.g. in a loop that is executed many times. For time critical grids I usually give the advice to override GetStyleRowCol and StoreStyleRowCol and only store those attributes that are really needed in your own data structure object. Then you can easily access these object directly and you don't have the overhead that style attributes (for example the font, the background color) are stored that you don't use in your grid.