PluginWindowlessWin
实际绘图发生在我的本机代码中的屏幕外目标上,每次刷新都会调用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。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。FB::Rect r = dynamic_cast<FB::RefreshEvent*>(evt)->bounds;
这可能会解决您的问题。

更多精彩