在 MFC(Microsoft Foundation Classes)中,CWnd::SendMessageToDescendants 是一个公共方法,用于向窗口的所有子窗口发送指定的 Windows 消息。

函数原型如下:
BOOL SendMessageToDescendants(
   UINT message,
   WPARAM wParam = 0,
   LPARAM lParam = 0,
   BOOL bDeep = TRUE,
   BOOL bOnlyPerm = FALSE
);

参数解释:
  •  message:要发送的消息。

  •  wParam 和 lParam:消息的参数。

  •  bDeep:一个布尔值,表示是否向所有子窗口的子窗口发送消息(TRUE 表示是,FALSE 表示否)。

  •  bOnlyPerm:一个布尔值,表示是否只向永久性(permanent)子窗口发送消息。永久性子窗口是通过 Create() 或 CreateEx() 函数创建的,而不是通过对话框模板定义的。


函数返回值:
  •  如果函数成功,则返回非零值;如果失败,则返回零。


函数功能:
SendMessageToDescendants 允许你向窗口的所有子窗口发送指定的 Windows 消息。可以选择是否向所有子窗口的子窗口发送消息,以及是否只发送消息给永久性子窗口。

使用示例:
CWnd* pWnd = GetDlgItem(IDC_YOUR_DIALOG_ITEM);
BOOL result = pWnd->SendMessageToDescendants(WM_CLOSE);

上述示例中,SendMessageToDescendants 用于向对话框中 ID 为 IDC_YOUR_DIALOG_ITEM 的子窗口以及所有子窗口的子窗口发送 WM_CLOSE 消息,请求关闭这些窗口。


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