Mozilla developer's documentation说:
窗
插件接收WM_PAINT消息。 WM_PAINT的lParam参数包含指向RECT结构的指针,指定更新区域的边界框。但是,有些插件会选择忽略这个paint rect,而是总是更新整个插件窗口。此外,由于插件和浏览器共享相同的HDC,插件必须将当前设置保存在HDC上,设置自己的环境,自行绘制,并将HDC恢复到以前的设置。每当控件返回浏览器时,必须在从NPP_HandleEvent返回之前或在调用与绘图相关的浏览器端方法之前恢复HDC设置。
这必须是客户RECT吗?
RECT r;
GetClientRect(PluginWnd->getHWND(), &r);
NPP_HandleEvent(WM_PAINT, 0, (uint32)&r);
或窗口的RECT?
RECT r;
GetWindowRect(PluginWnd->getHWND(), &r);
NPP_HandleEvent(WM_PAINT, 0, (uint32)&r);