查找 Two_Line_Text_Combobox 的 OnCbnSelchange 实现处

今天和前同事讨论 OnCbnSelchange,

他们的工程中,有一个MFC控件类实现和CodeProject上的 Demo <<Two_Line_Text_Combobox>>基本一样。

可能原型就是借鉴了人家的工程.

他说在那个工程中,找不到OnCbnSelchange类似的实现,需要加一个.

下载编译后,看了效果, 是个ComBox的自绘控件, 点击不同的条目,那个条目就会显示在ComBox中。

这不就是 OnCbnSelchange 的效果么? 找找作者有没有留下该消息或事件的处理函数~


LRESULT CComboboxTextDlg::OnComboboxNotify(WPARAM wParam, LPARAM lParam)
{
	TRACE("Combobox CtrlID = %d, CurSelNo = %d\n", wParam, lParam);

	return 1;
}
上面就是选择条目时,当前选择条目与上一条目不同时,执行的自定义通知处理。等同于 OnCbnSelchange

lParam就是选择的条目号码, 第一个条目为1, 第二个条目为2, ...

ON_MESSAGE(COMBOBOXEX_NOTIFYMSG, OnComboboxNotify)
由自定义消息COMBOBOXEX_NOTIFYMSG的发送处理,来指示条目的选择发生了变化.
由  SetCurSel 发起 COMBOBOXEX_NOTIFYMSG 消息.

void CComBoxEx::SetCurSel(int nCurSel)
{
	if (m_nCurSel != nCurSel) ///< 只有选择的条目不同时,才会发出 COMBOBOXEX_NOTIFYMSG 消息
	{
		m_nCurSel = nCurSel;
		Invalidate();

		CWnd *pParentWnd = GetParent();

		::SendMessage(pParentWnd->m_hWnd, COMBOBOXEX_NOTIFYMSG, GetDlgCtrlID(), m_nCurSel);
	}	
}

SetCurSel 的调用 由以下函数发起.
void CComBoxEx::OnLButtonDown
SetComboxCurSel
SetComboxCurSel 由下列任务发起:
CComboxList::OnLButtonUp
CComboxList::OnKeyDown









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值