void CFX_SystemHandler::InvalidateRect(FX_HWND hWnd, FX_RECT rect) { // g_pFormFillApp->FFI_Invalidate(); CPDFSDK_Annot* pSDKAnnot = (CPDFSDK_Annot*)hWnd; CPDF_Page* pPage = NULL; CPDFSDK_PageView* pPageView = NULL; pPageView = pSDKAnnot->GetPageView(); pPage = pSDKAnnot->GetPDFPage(); if (!pPage || !pPageView) return; CPDF_Matrix page2device; pPageView->GetCurrentMatrix(page2device); CPDF_Matrix device2page; device2page.SetReverse(page2device); FX_FLOAT left, top, right, bottom; device2page.Transform((FX_FLOAT)rect.left, (FX_FLOAT)rect.top, left, top); device2page.Transform((FX_FLOAT)rect.right, (FX_FLOAT)rect.bottom, right, bottom); // m_pEnv->FFI_DeviceToPage(pPage, rect.left, rect.top, (double*)&left, // (double*)&top); // m_pEnv->FFI_DeviceToPage(pPage, rect.right, rect.bottom, (double*)&right, // (double*)&bottom); CPDF_Rect rcPDF(left, bottom, right, top); rcPDF.Normalize(); m_pEnv->FFI_Invalidate(pPage, rcPDF.left, rcPDF.top, rcPDF.right, rcPDF.bottom); }
void CPDFSDK_PageView::UpdateView(CPDFSDK_Annot* pAnnot) { CPDF_Rect rcWindow = pAnnot->GetRect(); CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); pEnv->FFI_Invalidate( m_page, rcWindow.left, rcWindow.top, rcWindow.right, rcWindow.bottom); }
void CPDFSDK_PageView::UpdateRects(CFX_RectArray& rects) { for (int i = 0; i < rects.GetSize(); i++) { CPDF_Rect rc = rects.GetAt(i); CPDFDoc_Environment* pEnv = m_pSDKDoc->GetEnv(); pEnv->FFI_Invalidate(m_page, rc.left, rc.top, rc.right, rc.bottom); } }