通常控件都是作为其它窗口的子窗口,通过父窗口的反射机制就能获得自己发出去的Notification了。可我现在的情况是,我将控件(CEdit)创建为 Top-Level 窗口,即没有 Parent Window, 那么怎样才能获得自己发送的 Notification (e.g. EN_UPDATE) 呢??
谢谢~!!

解决方案 »

  1.   

    使用消息反射可以在控件本身内处理控件消息,例如 WM_CTLCOLOR、WM_COMMAND 和 WM_NOTIFY。这使得控件更为独立且更易于移植。该机制适用于 Windows 通用控件和 ActiveX 控件(以前称为 OLE 控件)。消息反射使您更容易重新使用 CWnd 派生的类。消息反射通过 CWnd::OnChildNotify 工作,并使用特殊的 ON_XXX_REFLECT 消息映射项:例如,ON_CTLCOLOR_REFLECT 和 ON_CONTROL_REFLECT。技术说明 62 更为详细地解释了消息映射。
      

  2.   

    可是问题是,消息必须由Parent窗口来反射,这在TN062中也说明了,可它没说明,如果控件没有父窗口时,它是否会发送或者向谁发送Notification