书上都是用findwindow()找到窗体的句柄,然后用postmessage。但是findwindow找不到mdi的子窗体,我用register message,从一个对话框的程序中广播消息,然后在mdi的一个子窗体中添加了响应函数,但是仍然响应不到这个消息。用spy++查看,发现消息已经发到了mdi程序。各位高手,怎么解决这个问题?谢谢

解决方案 »

  1.   

    用MainFrame响应消息
    操作子窗体的函数
    可以通过GetActiveFrame,GetActiveView函数
    CMDIFrameWnd *pFrame = 
                 (CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;// Get the active MDI child window.
    CMDIChildWnd *pChild = 
                 (CMDIChildWnd *) pFrame->GetActiveFrame();// or CMDIChildWnd *pChild = pFrame->MDIGetActive();// Get the active view attached to the active MDI child
    // window.
    CMyView *pView = (CMyView *) pChild->GetActiveView();