我开发的一个系统采用的MDI多文档结构,其中有一个子窗体是个DLL,因为我需要根据DLL子窗体是否处于活动状态来设置主窗体上某些按钮的可用性,问题是在这个DLL子窗体里的FormActivate 和FormDeActivate事件都无法触发,现在我的问题是,我有什么办法知道这个DLL子窗体处于非活动状态或活动状态,或者有什么办法当这个DLL子窗体通知主窗体它正处于活动或非活动状态,从而让我有机会去设置主窗体按钮的可用性?

解决方案 »

  1.   

    你可以在create和free事件的时候写
      

  2.   

    你们的方式都不可行,因为我在MDI主窗体里的窗口菜单下切换窗体的时候,这个根本做不到,而且我的这个窗体并不释放.
      发消息的方式或许可以,但是我在什么时候发消息给主窗体呢?也就是时机在什么时候呢?
      

  3.   

    没人能回答我这个问题么?我是听说delphi对MDI支持是不怎么好,看来到D7 也没解决
      

  4.   

    我在出窗体里切换子窗体,和你Dll子窗体创建时发消息有什么关系呀,你到底看明白我的意思没有?
      

  5.   

    我试过了在dll窗体的oncreate事件中加入自定义的消息处理,问题是很多消息拦截不到
    比如:WM_NCHITTEST,WM_NCACTIVATE,哎搞不定!郁闷