问题描述:
int i=0;
while(i++<10)
{
CEdit *pEdit=new CEdit();      //分配空间
pEdit->Create(ES_AUTOHSCROLL,
             CRect(10+i,10+i,100,100),
             this,
             makeID(i)
             );  //创建,this是父窗体的指针
pEdit->ShowWindow(TRUE);       //显示
}makeID是我自定义的产生id的函数。我希望达到的目的是动态的创建很多edit,
例如创建了 3个edit,创建时指定的id分别IDC_MYDEFINE_AA,
IDC_MYDEFINE_AA+1,IDC_MYDEFINE_AA+2,然后这么多个edit的按键事件共用一段处理代码。
怎么做?
还有,在那段代码中我如何区分是那个edit调用的这段代码?
(是否获取调用者的id即可?如果是的话,怎么获取?)谢谢!!!

解决方案 »

  1.   

    随便说一种: 
    BOOL C***Dlg::PreTranslateMessage(MSG* pMsg)中
    nId = ::GetDlgCtrlID(pMsg->hwnd);
    int n = nId - IDC_MYDEFINE_AA;
    n就为第几个editbox
      

  2.   

    谢谢jennifergiant(孟琦) 
    请问怎么样让她响应消息吗?是不是也在这里处理.
    判断pMsg就行了吗?
    问题解决完就结贴
      

  3.   

    jennifergiant(孟琦) 说得有理。
      

  4.   

    就是重载PreTranslateMessage(MSG* pMsg)
    按ctrl+w找到这个消息
      

  5.   

    谢谢,现在就结贴,
    jennifergiant(孟琦) 你还能到这里来领100分吗?
    同时也谢谢  guanjinke(纶巾客) 和 carbon107(&lt;软件开发思想.h&gt;) http://expert.csdn.net/Expert/topic/2672/2672276.xml?temp=.1906092