描述:
小弟在VC6中用ATL建了一个activeX 控件,我insert 了一个 Lite Control,它是基于 Edit 的,名字是 aaInput ,加入后系统默认有这么一段代码,是用来添加一个setfocus事件的,
LRESULT CaaInput::OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
LRESULT lRes = CComControl<CaaInput>::OnSetFocus(uMsg, wParam, lParam, bHandled);
if (m_bInPlaceActive)
{
DoVerbUIActivate(&m_rcPos, NULL);
if(!IsChild(::GetFocus()))
m_ctlEdit.SetFocus();
}
return lRes;
}
问题一:现在我想加入一个与它对立的事件,就是 相当于vb里面的 LostFocus 该如何写代码?
问题二:我如果想利用程序向这个文本筐里输入字符又改如何写,而不是从键盘上直接输入的,相当于VB里面的 text1.text="***"
小弟对VC不是很熟悉,分不够再加:)
解决方案1:
1、在控件上右键添加EN_KILLFOCUS事件啊
2、为控件IDC_TEXT添加变量m_strText;
m_strText=""
UpdateData(FALSE)
LRESULT CaaInput::OnKillFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
LRESULT lRes = CComControl<CaaInput>::OnKillFocus(uMsg, wParam, lParam, bHandled);
。。。。
创建控件时有kill focus选项,和setfocus一起的,如果没有就通过向导手工添加WM_KILLFOCUS消息处理,就会生成上面的代码