意欲在钩子里隐藏即将显示的窗口

试图在钩子里隐藏即将显示的窗口
先上代码
/////////////////////////在dll里的钩子函数//////////

/////////////////////////////注入成功是肯定的/////////////////////////

LRESULT CALLBACK CallWndProc(int nCode,WPARAM wParam,LPARAM lParam)
{
      if (nCode<0 )      
         {
  return CallNextHookEx(ShellHook,nCode,wParam,lParam); //
     }
             if(NULL!=lParam)   
{   
    CWPSTRUCT  *pCwp=NULL;   

                         pCwp=(CWPSTRUCT*)lParam;   

      if(WM_WINDOWPOSCHANGING==pCwp->message) 
{

char classname[256];

::GetClassName(pCwp->hwnd,classname,256);

CString temp_classname;

temp_classname.Format("%s",classname);
   
                     if(temp_classname=="TDLFrame")//
{

                                                 WINDOWPOS *pWndPos = (WINDOWPOS *)lParam; 
             if (pWndPos->flags&SWP_SHOWWINDOW)      
   {     
                            pWndPos->flags &=0xFFFFFFBF;    
     //ShowWindow(pCwp->hwnd,SW_HIDE);//这样会闪一下,效果不好
   } 
else return CallNextHookEx(ShellHook,nCode,wParam,lParam); //传递钩子信息 

}
}
else return CallNextHookEx(ShellHook,nCode,wParam,lParam); //传递钩子信息 
  }
}

这段代码不知道为什么没有效果,如果强制ShowWindow(pCwp->hwnd,SW_HIDE);//这样会闪一下,效果不好

------解决方案--------------------
The CallWndProc hook procedure can examine the message, but it cannot modify it. 
Hook一下WH_CBT当类型为HCBT_CREATEWND的时候,或者就是hook一下ShowWindow方法
------解决方案--------------------
窗口重要吗?不重要直接关闭了就行,还理他干嘛?
------解决方案--------------------
即将显示的窗口要隐藏好像一定会闪一下的]
先不说钩子不钩子
直接自己写的窗口想实现类似的功能一般是在OnNcPaint里
这样窗口不会闪
但是焦点还是会闪