G)m_oldWndProc); 112 } 113} 114 115void CBasicWndInfo::RemoveAll() 116{ 117 m_list_scw.clear(); 118} 119 120CBasicWndInfo::CBasicSubClassWndMap& CBasicWndInfo::GetHookMap() 121{ 122 static CBasicSubClassWndMap s_map; 123 return s_map; 124} 125 126LRESULT CBasicWndInfo::HookWndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam) 127{ 128 MapIter iter = GetHookMap().find(hWnd); 129 if (uMsg==WM_NCDESTROY) 130 { 131 //iter->second.RemoveAll(); 132 } 133 else 134 { 135 CBasicSubClassWndList::iterator it; 136 for (it=iter->second.m_list_scw.begin();it!=iter->second.m_list_scw.end();++it) 137 { 138 if (!(*it)->SubWindowProc(uMsg,wParam,lParam)) 139 return 0; 140 } 141 } 142 return ::CallWindowProc(iter->second.m_oldWndProc,hWnd,uMsg,wParam,lParam); 143}
摘自 天道酬勤
|