带有WM_PAINT消息的NPP_HandleEvent

时间:2014-02-16 15:13:33

标签: c++ npapi wm-paint

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);

0 个答案:

没有答案