使用的是一个别人写好的类
是为了在listctrl的report模式下实现编辑数据的功能
原来的类只有在鼠标点击了别的地方时,FOCUS转移后他才会处理已编辑的信息,存入listview中
现在我希望捕获那些CEdit编辑框的ON_CHANGE消息,一旦修改了数据,就立即处理,而不是一定要等到
FOCUS转移之后但难点是他是采用Create创建的(new CEdit),ID也是封装在一个结构的成员变量中如下所示:
pSubItemInfo->m_pWnd = new CEdit();
((CEdit*)pSubItemInfo->m_pWnd)->Create (dwStyle,ControlSize,this ,m_iControlIDCounter);小弟基础不好,只会象classwizard里面那样添加消息处理函数,
而不会处理非固定ID的控件的消息,
向大家求助,希望大家帮帮忙啊~~!

解决方案 »

  1.   

    修正一下,是EN_CHANGE消息~~!
    在线等~~
      

  2.   

    添加成员函数
    afxmsg void OnEnChangeId();
    在CPP文件BEGIN_MESSAGE_MAP和END_MESSAGE_MAP中间插入一行:
    ON_EN_CHANGE( ID_YOURID, OnEnChangeId )
      

  3.   

    to sssn(Ⅷ) :该如何创建和修改,能不能说清楚些或者给个例子~~谢谢
    关于这方面我接触得比较少
      

  4.   

    to Mackz(在相互):现在问题是在程序运行前EDIT控件的ID是不一定的,而且有多个
    我想问一下,能不能在创建控件的那个函数中添加消息处理呢?
      

  5.   

    这些id有个范围吧
    比如1000 ~1100
    //dlg1.h
    afx_msg void OnChangeEdit(UINT nID);//dlg1.cpp
    BEGIN_MESSAGE_MAP(CDlg1, CDialog)
    ON_CONTROL_RANGE(EN_CHANGE, 1000, 1100, OnChangeEdit)
    END_MESSAGE_MAP()void CDlg1::OnChangEdit(UINT nID){
       ....//根据id判断改变的是哪个edit
    }
      

  6.   

    To lixiaosan(小三)
    谢谢~~~我去试试
      

  7.   

    不用试了,lixiaosan(小三)好使的