关于子类化

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

现在看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替换掉了窗口原有的处理过程,自己处理之后,再考虑要不要交给系统去默认处理,历史书上记载就这么回事

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值