Что нужно для этого вызова gdk_get_pixmap?

Я создал небольшой класс области рисования, и теперь мне нужно растровое изображение для рисования во время обратного вызова события expose. Но я не могу получить параметр, который я пытался скомпилировать. Вот соответствующие части кода ...

Определение класса ...

class set_display_drawing_area : public Gtk::DrawingArea
{
    public:
        set_display_drawing_area          ();
        virtual ~set_display_drawing_area ();
    protected:
        virtual bool on_expose_event(GdkEventExpose* event);
    private:
        GdkPixmap              *pixmap_ptr;
};

и обратный вызов expose ...

bool set_display_drawing_area::on_expose_event(GdkEventExpose* event)
{
    Glib::RefPtr<Gdk::Window> window = get_window();

    if (window)
    {
        Gtk::Allocation allocation = get_allocation();
        const int width = allocation.get_width();
        const int height = allocation.get_height();

        pixmap_ptr = gdk_pixmap_new (window,    // <-- What is needed here?
                                     width,
                                     height,
                                     -1);
1
задан Brian Hooper 29 August 2010 в 09:54
поделиться

1 ответ

Здесь вы смешиваете код стилей gtkmm (C++) и gtk (C). gdk_pixmap_new — это функция C, которая ничего не знает о шаблонах и классах (например, Glib::RefPtr). Возможно, вы также захотите использовать gtkmm для растрового изображения:

Glib::RefPtr<Gdk::Pixmap> pixmap;

и

pixmap = Gdk::Pixmap::create(window, width, height);
2
ответ дан 2 September 2019 в 21:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: