Code: Select all
#pragma once
#ifndef _IMAGECELLRENDERER
#define _IMAGECELLRENDERER
class ImageCellRenderer : wxGridCellStringRenderer
{
public:
ImageCellRenderer(wxImage image);
virtual void Draw(wxGrid& grid, wxGridCellAttr& attr, wxDC& dc, const wxRect& rect, int row, int col, bool isSelected) wxOVERRIDE;
private:
wxImage m_image;
wxDECLARE_NO_COPY_CLASS(ImageCellRenderer);
};
#endif
#ifdef __GNUC__
#pragma implementation "dialogs.h"
#endif
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#include "wx/grid.h"
#include "imagecellrenderer.h"
ImageCellRenderer::ImageCellRenderer(wxImage image)
{
m_image = image;
}
void ImageCellRenderer::Draw(wxGrid& grid, wxGridCellAttr& attr, wxDC& dc, const wxRect& rect, int row, int col, bool isSelected)
{
wxGridCellStringRenderer::Draw( grid, attr, dc, rect, row, col, isSelected );
wxBitmap bitmap( m_image );
dc.DrawBitmap( bitmap, rect.x, rect.y );
}
Code: Select all
m_grid->SetCellRenderer( m_processed, i++, new ImageCellRenderer( image ) );
error C2243: 'type cast': conversion from 'ImageCellRenderer *' to 'wxGridCellRenderer *' exists, but is inaccessible
Thank you.
P..S..: This is with wx-3.1.4 on Windows with MSVC 2017.