PluginWindowlessWin
阿新 • • 發佈:2019-05-06
證明 otto cdi etc gin bits 而不是 left 插件
實際繪圖發生在我的本機代碼中的屏幕外目標上,每次刷新都會調用myplugin :: onWindowRefresh,它會將StretchBlt調用到插件的無窗口窗口,代碼如下,
FB::PluginWindowlessWin *win = dynamic_cast<FB::PluginWindowlessWin*>(pluginWindow); dstHdc = win->getHDC(); if(srcDib && dstHdc) { FB::Rect r = win->getWindowPosition(); int dstWidth = r.right - r.left; int dstHeight = r.bottom - r.top; SetStretchBltMode(dstHdc, HALFTONE); StretchDIBits(dstHdc, r.left, r.top, dstWidth, dstHeight, 0, 0, srcWidth, srcHeight, srcDib->GetBits(), srcDib->GetBitmapInfo(), DIB_RGB_COLORS, SRCCOPY); }
======================================================================
事實證明,修復此問題是使用RefreshEvent中的邊界而不是getWindowPosition。
FB::Rect r = dynamic_cast<FB::RefreshEvent*>(evt)->bounds;
這可能會解決您的問題。
PluginWindowlessWin