Hook捕获WM_PAINT消息时遇到的有关问题,望大家帮忙,多谢

Hook捕获WM_PAINT消息时遇到的问题,望大家帮忙,谢谢
我的目的:在一个软件的视图窗口中添加个网格。
我的思路:用钩子捕获这个窗口的wm_paint消息,然后在钩子过程函数中画这个网格。
我的问题:
1、用QQ的聊天窗口测试的时候,可以画出网格了,但更改为其他的窗口就不行了;
2、我希望我只是在上面添加个网格,而不要改变原来窗口,但现在有时只剩下个网格了,原窗口完全不见了。
望各位帮忙看看,谢谢,还需要其他的什么我都可以贴出来 

QQ聊天窗口测试截图:


DLL中的所有代码:
#include <windows.h>

HHOOK g_hWmPaint;

LRESULT CALLBACK GetMsgProc(
int code, // hook code
WPARAM wParam, // removal option
LPARAM lParam // message
)
{
PMSG pMsg=(PMSG) lParam; 
  PAINTSTRUCT ptstrt;
RECT rct;
int height,width;
  HWND h_tWnd=FindWindow("Internet Explorer_Server",NULL);//要拦截的目标窗体 
if(h_tWnd!=NULL&&pMsg-> hwnd==h_tWnd) 

if(pMsg-> message==WM_PAINT) 
{  
GetWindowRect(h_tWnd,&rct);
height=rct.bottom-rct.top;
width=rct.right-rct.left;
HDC hdc=BeginPaint(h_tWnd,&ptstrt);
  for (int i=20;i<width;i=i+20)
  {
  MoveToEx(hdc,i,0,0);
LineTo(hdc,i,height);
  }
for (int j=20;j<height;j=j+20)
  {
  MoveToEx(hdc,0,j,0);
LineTo(hdc,width,j);
  }

EndPaint(h_tWnd,&ptstrt);
   
return 1;  

else 

return CallNextHookEx(g_hWmPaint,code,wParam,lParam); 


else 


return CallNextHookEx(g_hWmPaint,code,wParam,lParam); 


}



void SetHook()
{
g_hWmPaint=SetWindowsHookEx(WH_GETMESSAGE,GetMsgProc,GetModuleHandle("HOOK.dll"),0);

}

------解决方案--------------------
有的窗口捕获消息不成功吧,而且划线的时候是画在了捕获窗口上了嘛。
------解决方案--------------------
这种软件并不一定是WM_PAINT中画图等,可能是别的方式,贴图等..
------解决方案--------------------
估计跟视频加速有关,开着视频有的时候用printscreen键截图都不好截,楼主可以尝试其他方法呀,试试做个遮罩窗口,设置为EMAMCAP(摄像头程序)的子窗口这样就会显示在EMAMCAP的前端,然后在遮罩窗口上画网格,设置一下遮罩窗口的透明色(用SetLayeredWindowAttribute函数),使其只显示网格就可以了。
------解决方案--------------------
学习。。。
------解决方案--------------------
视频是调用paint吗?