PaintingTest::PaintingTest(QWidget *parent, Qt::WFlags flags) : QMainWindow(parent, flags){ ui.setupUi(this); //QScrollArea* area = new QScrollArea; w = new QWidget; w->resize(1024, 768); //area->setWidget(w); //setCentralWidget(area); setCentralWidget(w); w->installEventFilter(this); // w->setAttribute(Qt::WA_OpaquePaintEvent); // фон становится чёрным, перерисовка кривая // w->setAttribute(Qt::WA_NoSystemBackground); // то же самое // w->setAttribute(Qt::WA_StaticContents); // фон нормальный, перерисовка кривая // w->setAttribute(Qt::WA_PaintOnScreen); то же самое // w->setAutoFillBackground(false); // то же самое.. если true - аналогично}PaintingTest::~PaintingTest(){}bool PaintingTest::eventFilter(QObject* o, QEvent* e){ if(o == w) { if(e->type() == QEvent::Paint) { //паинтер рисует нормально, без мерцаний //QPainter p(w); //p.drawLine(0, 0, 400, 400); //hdc = 0 !!! //HDC dc = w->getDC(); //dc != 0 HDC hdc = GetDC(w->winId()); HPEN hPen = CreatePen(PS_SOLID, 10, RGB(00,0xff,00)); SelectObject(hdc,hPen); // рисует при ресайзе и т.п наблюдаются мерцания, не всегда прорисовывается LineTo(hdc, 100, 100); DeleteObject(hPen); ReleaseDC(w->winId(), hdc); //w->releaseDC(dc); } } return QMainWindow::eventFilter(o, e);}