在 MFC(Microsoft Foundation Classes)中,CWnd::SetOwner 是一个公共方法,用于设置窗口的拥有者窗口。该方法的声明如下:
void SetOwner(CWnd* pOwnerWnd);

  •  pOwnerWnd: 一个指向拥有者窗口的 CWnd 对象指针。


通过调用 SetOwner 方法,你可以将当前窗口的拥有者设置为另一个窗口。这在窗口之间进行通信或者在模态对话框中使用是常见的。

以下是一个示例,演示如何在一个窗口类中设置拥有者窗口:
CMainFrame::CMainFrame()
{
    // 创建主窗口
    if (!Create(NULL, _T("Main Window"), WS_OVERLAPPEDWINDOW, rectDefault, NULL, 0))
    {
        AfxMessageBox(_T("Failed to create main window!"));
        return;
    }

    // 创建子窗口
    m_childWnd.Create(NULL, _T("Child Window"), WS_CHILD | WS_VISIBLE | WS_BORDER, CRect(10, 10, 200, 200), this, 1);

    // 设置子窗口的拥有者为主窗口
    m_childWnd.SetOwner(this);
}

在这个示例中,CMainFrame 类创建了一个主窗口,并在主窗口中创建了一个子窗口 m_childWnd。然后,通过调用 SetOwner 方法,将子窗口的拥有者设置为主窗口。这样,主窗口就可以与子窗口进行通信,例如处理消息或者调用子窗口的方法。


转载请注明出处:http://www.pingtaimeng.com/article/detail/23557/MFC/CWnd