小弟在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.   

    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消息处理,就会生成上面的代码
      

  2.   

    没有啊,setfocus 是默认的,
      

  3.   

    系统自动加的代码 if(!IsChild(::GetFocus()))
    m_ctlEdit.SetFocus();
     这一句是做什么用的?
      

  4.   

    1、在控件上右键添加EN_KILLFOCUS事件啊
    2、为控件IDC_TEXT添加变量m_strText;
       m_strText=""
       UpdateData(FALSE)
      

  5.   

    楼上的,我没有suport MFC 出现以下错误
     : error C2065: 'UpdateData' : undeclared identifier
      

  6.   

    目前我加的这个控件默认有一个 CComBSTR m_bstrText;