关于子类化

来源:互联网 发布:李明 沈超 linux 视频 编辑:程序博客网 时间:2024/05/29 16:49

记得刚学程序的时候,子类搞得它娘的挺高深,许就没明白,就是因为被吓到了,等到回过神来,就他娘的替换窗口过程嘛,妈的,搞得这么不明不白,祖宗的象形文字全忘了?

现在看drgon里的处理

// //子类化窗口,替换它的窗口过程////Return//成功返回false,失败返回false//bool HwndHost::SubclassWindow(){UIASSERT( m_hWnd != NULL );this->m_thunk.Init( &HwndHost::_WndProc, this );WNDPROC pProc = this->m_thunk.GetWNDPROC();this->m_oldWndProc = (WNDPROC)(LONG_PTR) ::SetWindowLong( m_hWnd, GWLP_WNDPROC, (LONG)(LONG_PTR)pProc);this->OnSubclassWindow();return true;}

就是利用setwindowlong替换掉了窗口原有的处理过程,自己处理之后,再考虑要不要交给系统去默认处理,历史书上记载就这么回事

0 0