动态创建的控件在那里处理Change事件?
editex.Create(WS_VISIBLE|WS_BORDER|ES_AUTOHSCROLL,rc,pWnd,IDC_EDITEX);我派生一个CEditex类在里面处理Change事件也不进啊~!

解决方案 »

  1.   

    你创建是赋给控件的ID为IDC_EDITEX
    有了ID就可以响应消息函数
      

  2.   

    EN_CHANGE Notification--------------------------------------------------------------------------------The EN_CHANGE notification message is sent when the user has taken an action that may have altered text in an edit control. Unlike the EN_UPDATE notification message, this notification message is sent after the system updates the screen. The parent window of the edit control receives this notification message through a WM_COMMAND message
      

  3.   

    是,还得加上WS_CHILD.
    根据创建时的ID响应消息 。
      

  4.   

    处理动态创建的控件的简单办法:
    先在资源中放置一个同名 (ID) 控件,添加其消息响应函数。然后在资源中删除之,但要在
    Resource.h 中保留其 ID 宏。最后再用这个 ID 动态创建控件就可以了。
      

  5.   

    我原来加了WS_CHILD的,也没有进派生类的Change啊~!DeautyFan(痴情浪子) 说的是什么意思啊?应该怎么写的?
      

  6.   

    Edit的父窗口不是Dialog啊,是用系统CallBack出来的。直接说吧,你们都用过CFolderDialog这个类吧?(就是选择目录的对话框)现在用户要求把上面显示目录的那个Static改成Edit可以编辑,
    我用这个把Static关掉了,然后动态的建立1个Edit
    HWND Static=FindWindowEx(m_hDialogBox,NULL,"Static",NULL);
    然后要处理这个Edit的输入,有什么好办法?
      

  7.   

    在父类里面响应

    BEGIN_MESSAGE_MAP(CSettingWnd, CResizableDialogBar)
    //{{AFX_MSG_MAP(CSettingWnd)
    ON_EN_CHANGE(IDC_YTOPVALUE, OnYTopValue)
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    .h中
    //{{AFX_MSG(CSettingWnd)
    afx_msg void OnYTopValue();
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()IDC_YTOPVALUE就是button ID
      

  8.   

    应该在CFolderDialog派生类中处理这个消息函数
      

  9.   

    大体是 ,控件内容被修改后,系统会发一个EN_CHANGE通知(包含在WM_COMMAND中)给控件得父窗口
      

  10.   

    看来还是和这个父窗口有关系,我刚才在About对话框中试验上面的方法都是对的。
    派生类Change函数可以进,用消息映射也是好的~