MFC浮动CDialog控件剪裁问题

MFC浮动CDialog控件剪裁问题,mfc,clipping,cdialog,Mfc,Clipping,Cdialog,我正在制作一个SDI MDF应用程序,它使用frameview向用户提供一组控件(按钮、编辑框等)。视图还拥有一组CDialog,用于显示传统控件,这些控件可以通过tabcontrol和其他方式显示或隐藏。直到最近,对话框一直被静态地放置在创建时,以便在屏幕上的适当位置,但我想添加一个对话框,用户可以四处移动,但仍然是视图的子对象。当我创建了一个带有标题和系统菜单的对话框时,用户可以绕过我遇到的问题,即当窗口放置在视图拥有的另一个控件上时(比如一个按钮),当在按钮上调用paint方法时,它会在对

我正在制作一个SDI MDF应用程序,它使用frameview向用户提供一组控件(按钮、编辑框等)。视图还拥有一组CDialog,用于显示传统控件,这些控件可以通过tabcontrol和其他方式显示或隐藏。直到最近,对话框一直被静态地放置在创建时,以便在屏幕上的适当位置,但我想添加一个对话框,用户可以四处移动,但仍然是视图的子对象。当我创建了一个带有标题和系统菜单的对话框时,用户可以绕过我遇到的问题,即当窗口放置在视图拥有的另一个控件上时(比如一个按钮),当在按钮上调用paint方法时,它会在对话框上绘制。对话框仍然位于顶部,对话框控件仍然可以与之交互,但按钮将一直绘制在对话框上,直到对话框重新绘制。我尝试更改对话框的clipchild和ClipSpilings设置,并且能够使对话框正确地相互剪裁,但似乎无法使子对话框正确地剪裁父视图控件。是否有人知道什么设置可以解决此剪辑问题。

如何创建浮动对话框?我只给对话框标题样式,并允许默认的处理程序通过单击标题栏,让用户能够拖动对话框选择“弹出”作为浮动对话框的样式,而不是“子”样式。这会起作用,我也尝试过,但我的父母和所有孩子之间都有消息传递,所以我不知道如何以可扩展的方式在消息传递中包含非孩子对话框。现在我使用sendToAllChildren函数,因此添加新对话框不需要对消息传递进行任何修改。您是指CWnd::SendMessageToDescendats吗?您始终可以添加SendMessage调用,将相同的消息发送到其他浮动对话框。