比如在OnCreate中生成了一个CEdit,由于不是在资源管理窗里面生成的,没有ID,哪应该怎么响应诸如鼠标点击,以及按键这样的事件呢?

解决方案 »

  1.   

    在消息映射中添加
    BEGIN_MESSAGE_MAP
       .....    
       ON_CONTROL_RANGE(........)
    END_MESSAGE_MAP()
    并指定处理函数,具体用法看msdn
      

  2.   

    没有ID?肯定有吧
    或者重载PretranslateMessage拦截所有事件,响应相应消息。
      

  3.   

    可是动态生成的啊
    CEdit* pEdit
     pEdit = new CEdit;
    pEdit->Create(ES_NUMBER | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
    CRect(80, 10, 120, 30), this, 1);
    怎么会有ID?
      

  4.   

    哪你用BEGIN_MESSAGE_MAP
       .....    
       ON_CONTROL_RANGE(1,1,hello)
    END_MESSAGE_MAP()
    hello()是你的相应的函数
      

  5.   

    没有ID肯定不行,你怎么让windows管理控件呢?
    Create的最后一个参数就是让你给即将创建的控件指定一个ID,注意定义ID时别和系统保留的ID范围冲突