#&tkmm
#&tkmm
Вопрос:
Я создал небольшой класс области рисования, и теперь мне нужна пиксельная карта для рисования во время обратного вызова события expose. Но я не могу получить ни одного параметра, который я пытался скомпилировать. Вот соответствующие части кода…
Определение класса…
class set_display_drawin&_area : public Gtk::Drawin&Area
{
public:
set_display_drawin&_area ();
virtual ~set_display_drawin&_area ();
protected:
virtual bool on_expose_event(GdkEventExpose* event);
private:
GdkPixmap *pixmap_ptr;
};
и обратный вызов expose…
bool set_display_drawin&_area::on_expose_event(GdkEventExpose* event)
{
Glib::RefPtr<Gdk::Window&&t; window = &et_window();
if (window)
{
Gtk::Allocation allocation = &et_allocation();
const int width = allocation.&et_width();
const int hei&ht = allocation.&et_hei&ht();
pixmap_ptr = &dk_pixmap_new (window, // <-- What is needed here?
width,
hei&ht,
-1);
Ответ №1:
Здесь вы смешиваете код в стиле &tkmm (C ) и &tk (C). &dk_pixmap_new
это функция C, которая понятия не имеет о шаблонах и классах (таких как Glib::RefPtr
). Вероятно, вы захотите использовать &tkmm и для вашей пиксельной карты:
Glib::RefPtr<Gdk::Pixmap&&t; pixmap;
и
pixmap = Gdk::Pixmap::create(window, width, hei&ht);