void __stdcall CDlgMask::draw_fun(PLAY_HANDLE handle, HDC hDc, LONG nUser) { CDC* dc = CDC::FromHandle(hDc); CDlgMask* test= (CDlgMask*)nUser; // draw user rect CPen pen_blue(0,1,RGB(0,0,255)); dc->SelectObject(&pen_blue); dc->SelectStockObject(NULL_BRUSH); dc->Rectangle(&test->m_mask_rt); }
void RC_Widget::paintEvent(QPaintEvent*) { QPen pen_red(Qt::red); pen_red.setWidth(5); QPainter painter(this); painter.setPen(pen_red); painter.drawLine(0, 250, 500, 250); painter.drawLine(250, 0, 250, 500); QPen pen_blue(Qt::blue); pen_blue.setWidth(3); painter.setPen(pen_blue); if(p_actual.x()<0) p_actual.setX(0); if(p_actual.y()<0) p_actual.setY(0); if(p_actual.x()>500) p_actual.setX(500); if(p_actual.y()>500) p_actual.setY(500); painter.drawLine(0, p_actual.y(), 500, p_actual.y()); painter.drawLine(p_actual.x(), 0, p_actual.x(), 500); int y_value = p_actual.y(); int x_value = p_actual.x(); if(rev_up_down<0){ if(y_value>250) y_value = 250 - (y_value - 250); else y_value = 250 + (250 - y_value); } if(rev_left_right<0){ if(x_value>250) x_value = 250 - (x_value - 250); else x_value = 250 + (250 - x_value); } double up_down = (250 - y_value)*500/250 + ((min_value_up_down + max_value_up_down)/2); double left_right = (250 - x_value)*500/250 + ((min_value_left_right + max_value_left_right)/2); ejeX = up_down; ejeY = left_right; // std::cout << "Repaint: "<< arriba_abajo << " " << izquierda_derecha << " " << p_actual.x() << " " << p_actual.y() << std::endl; }
void __stdcall CDlgIPCFeature:: draw_fun(PLAY_HANDLE handle, HDC hDc, LONG nUser) { CDC* dc = CDC::FromHandle(hDc); CDlgIPCFeature* test= (CDlgIPCFeature*)nUser; if(!test->m_auto_focus_rect_enable) { return; } RECT rt; test->GetDlgItem(IDC_VIDEO_IPC)->GetClientRect(&rt); int pic_w = rt.right; int pic_h = rt.bottom; int w =pic_w / 8; int h = pic_h / 5; int i = 0,j = 0; CPen pen_red(0,1,RGB(250,0,0)); CPen *oldPen = dc->SelectObject(&pen_red); for(i = 1; i <5; i++) { dc->MoveTo(0,h * i); dc->LineTo(rt.right,h * i); } //draw v line for(i = 1; i < 8; i++) { dc->MoveTo(w * i,0); dc->LineTo(w * i,rt.bottom); } dc->SelectObject(oldPen); // CDC ImageDC,MaskDC; // ImageDC.CreateCompatibleDC(dc); // ImageDC.SelectObject(&test->m_mask_bmp); // MaskDC.CreateCompatibleDC(dc); // MaskDC.BitBlt(0,0,rt.right,rt.bottom,&ImageDC,0,0,SRCCOPY); // // ImageDC.BitBlt(0,0,rt.right,rt.bottom,&MaskDC,0,0,SRCAND); // // dc->StretchBlt(test->m_auto_focus_rt.left, // test->m_auto_focus_rt.top, // test->m_auto_focus_rt.right - test->m_auto_focus_rt.left, // test->m_auto_focus_rt.bottom - test->m_auto_focus_rt.top, // &MaskDC,0,0,10,10,SRCAND); // // dc->StretchBlt(test->m_auto_focus_rt.left, // test->m_auto_focus_rt.top, // test->m_auto_focus_rt.right - test->m_auto_focus_rt.left, // test->m_auto_focus_rt.bottom - test->m_auto_focus_rt.top, // &ImageDC,0,0,10,10,SRCPAINT); // // ImageDC.DeleteDC(); // MaskDC.DeleteDC(); // draw user rect CPen pen_blue(0,1,RGB(0,0,255)); dc->SelectObject(&pen_blue); dc->SelectStockObject(NULL_BRUSH); dc->Rectangle(&test->m_auto_focus_rt); }