能不能把MDI子窗,每個不同的窗体(formview)做成一個com?在MDI程序中每一個MDI子窗口是分別是一個不同的窗体(formview)進行不同的操作,
能不能把各個窗体分別做成一個com,然后用這些com自己處理窗体(formview)上操作,
并和主窗口相互訪問變量進行通信???謝謝 !!!

解决方案 »

  1.   

    需要那么麻烦吗?呵呵,COM再好也不能这么用把?呵呵,你的想法估计实现其他的可行性不大,因为主框架和子框架之间的很多操作都是通过消息进行处理的,不管你设计成进程内组件DLL,还是其他的,消息的传递就遇到了问题,呵呵,虽然进程内组件DLL和EXE程序在同一个进程内,但是COM设计的时候就考虑到了线程的安全性,如果你还需要处理自己的结构体变量,你还需要自己处理线程之间消息和消息参数的列集和散集操作,那么你所做的工作将是平时的N倍之多。呵呵。
      

  2.   

    呵呵,如果你可以变通的话,可以参考这个例子做你的程序:
    http://www.vckbase.net/document/viewdoc/?id=691COM可以封装一些你需要操作的数据处理、理论算法等等的东东,那么这个软件设计还是可以如COM的优点所说的那么灵活!
      

  3.   

    to vcleaner(我没做大哥已经很久了.......) 
        
        謝謝!!!
    http://www.vckbase.net/document/viewdoc/?id=691
    這個例子我看過,我現在把程序做成和例子差不多的程序.但是我想改成以下要求的,不知怎麼改???假如:
    項目是分成幾個子系統的,各子系統中又有子模塊,想能通過子系統組成一個完整的系統,或通過子模塊組成一個子系統,或通過更改子模塊來增強擴展系統的功能.這樣的程序框架要怎麼設計?是不是不能用MDI框架來做?是不是不好用COM來實現,要用DLL來實現?
      

  4.   

    http://community.csdn.net/Expert/topic/3766/3766045.xml?temp=.2876245在DLL中加载太麻烦了 要先LoadLibery 然后还要函数指针
    如果我的DLL有几个不同的外部函数的话 我还要用几种函数指针楼主 我的问题和你一样,   一起看看吧
      

  5.   

    CMDIFrameWnd* pFrame = new CMainFrame;
    m_pMainWnd = pFrame; CRaChildFrame *m_pInput,*m_pAuditing,*m_pMade;如果我把 CMDIFrameWnd CRaChildFrame 做參數傳入COM,
    或者
    把CRuntimeClass變量付出COM
    // example for RUNTIME_CLASS
    CRuntimeClass* prt = RUNTIME_CLASS( CAge );
    ASSERT( lstrcmp( prt->m_lpszClassName, "CAge" )在程序中以下變量裡使用可否?
    CCreateContext context;
    context.m_pNewViewClass=RUNTIME_CLASS(CInputCertView);