Название: ::bitBlt Отправлено: thomas68 от Апрель 20, 2009, 13:45 как реализовать на QT4 void Mpaint::paintEvent(QPaintEvent* ){ ::bitBlt(this,0,0,&m_pix); ^^^^^^^^^^^^^^^^^ } Название: Re: ::bitBlt Отправлено: Rcus от Апрель 20, 2009, 14:58 http://doc.trolltech.com/4.5/porting4.html#qpaintdevice
Название: Re: ::bitBlt Отправлено: thomas68 от Апрель 20, 2009, 15:35 http://doc.trolltech.com/4.5/porting4.html#qpaintdevice мнебы примерчик как начинающему .... Название: Re: ::bitBlt Отправлено: pastor от Апрель 20, 2009, 15:48 как реализовать на QT4 Код
Название: Re: ::bitBlt Отправлено: thomas68 от Апрель 20, 2009, 17:53 как реализовать на QT4 Код
да но только эта конструкция не работает в обратную сторону ::bitBlt (&m_pix,0,0,this); Название: Re: ::bitBlt Отправлено: Rcus от Апрель 20, 2009, 17:59 QPixmap QPixmap::grabWidget ( QWidget * widget, const QRect & rectangle ) [static]
Название: Re: ::bitBlt Отправлено: pastor от Апрель 20, 2009, 18:17 QWidget::render(...)
Название: Re: ::bitBlt Отправлено: thomas68 от Апрель 20, 2009, 18:34 QWidget::render(...) а куда его вставлять ,,, ??? /*virtual*/void MousePaint::mouseMoveEvent(QMouseEvent* pe) { QPainter painter; painter.begin(this); painter.drawLine(m_pt, pe->pos()); m_pt = QPoint(pe->pos()); painter.end(); ::bitBlt(&m_pix, 0, 0, this); } Название: Re: ::bitBlt Отправлено: thomas68 от Апрель 20, 2009, 18:58 QWidget::render(...) Короче вот полный код из оригинала /* ====================================================================== ** MousePaint.h ** ====================================================================== ** */ #ifndef _MousePaint_h_ #define _MousePaint_h_ #include <qwidget.h> #include <qpoint.h> #include <qpixmap.h> // ====================================================================== class MousePaint : public QWidget { Q_OBJECT private: QPoint m_pt; QPixmap m_pix; protected: virtual void paintEvent (QPaintEvent* pe); virtual void mousePressEvent(QMouseEvent* pe); virtual void mouseMoveEvent (QMouseEvent* pe); public: MousePaint(QWidget* pwgt = 0); }; #endif //_MousePaint_h_ ///////////////////////////////////////////////////////////////////////// /* ====================================================================== ** MousePaint.cpp ** ====================================================================== ** */ #include <QMouseEvent> #include <qpainter.h> #include "MousePaint.h" // ---------------------------------------------------------------------- MousePaint::MousePaint(QWidget* pwgt/*= 0*/) : QWidget(pwgt) { m_pix.scaled(width(), height()); m_pix.fill(Qt::white); } // ---------------------------------------------------------------------- /*virtual*/void MousePaint::paintEvent(QPaintEvent*) { ::bitBlt(this, 0, 0, &m_pix); } // ---------------------------------------------------------------------- /*virtual*/void MousePaint::mousePressEvent(QMouseEvent* pe) { if (pe->button() & Qt::RightButton) { m_pix.fill(Qt::white); repaint(); } else { QPainter painter; painter.begin(this); painter.drawPoint(pe->pos()); m_pt = QPoint(pe->pos()); painter.end(); ::bitBlt(&m_pix, 0, 0, this); } } // ---------------------------------------------------------------------- /*virtual*/void MousePaint::mouseMoveEvent(QMouseEvent* pe) { QPainter painter; painter.begin(this); painter.drawLine(m_pt, pe->pos()); m_pt = QPoint(pe->pos()); painter.end(); ::bitBlt(&m_pix, 0, 0, this); } Название: Re: ::bitBlt Отправлено: pastor от Апрель 20, 2009, 20:18 Код
Название: Re: ::bitBlt Отправлено: thomas68 от Апрель 20, 2009, 22:20 Код
спасибо большое за пример , теперь компилируется но на экране ничего .... :'( Название: Re: ::bitBlt Отправлено: thomas68 от Апрель 20, 2009, 23:06 А другого варианта больше нет.
Этот у меня нерисует !! :( Название: Re: ::bitBlt Отправлено: pastor от Апрель 20, 2009, 23:11 Попробуй измени конструктор:
Код
|