C++ 用CascadeWindows函数在MFC中排列CDialogs

C++ 用CascadeWindows函数在MFC中排列CDialogs,c++,visual-c++,user-interface,mfc,C++,Visual C++,User Interface,Mfc,除了根据先前显示的窗口的位置简单地使用SetWindowPos之外,我如何在MFC中以级联格式以编程方式排列对话框 对话框位置将从我的应用程序中的注册表加载,因此我们使用: SetWindowPos(NULL,x,y,cx,cy,SWP_NOZORDER); …用于对话框。之后,如果我们使用CascadeWindows函数,它似乎不适用于此对话框,尽管它适用于同一父窗口中的其他对话框。似乎CascadeWindows函数对调用SetWindowPos的窗口没有影响;有人能确认一下吗 如果是这

除了根据先前显示的窗口的位置简单地使用
SetWindowPos
之外,我如何在MFC中以级联格式以编程方式排列对话框

对话框位置将从我的应用程序中的注册表加载,因此我们使用:

SetWindowPos(NULL,x,y,cx,cy,SWP_NOZORDER); 
…用于对话框。之后,如果我们使用CascadeWindows函数,它似乎不适用于此对话框,尽管它适用于同一父窗口中的其他对话框。似乎
CascadeWindows
函数对调用
SetWindowPos
的窗口没有影响;有人能确认一下吗


如果是这样,我们是否只需要使用SetWindowPos来安排对话框的层叠,或者是否有其他方法?

检查您的对话框是否具有窗口样式:
WS\u EX\u TOOLWINDOW
WS\u EX\u top
<代码>级联窗口将不会使用该样式排列窗口

我使用以下代码尝试了一个基于MFC示例对话框的应用程序:

void CTestCascadeDlg::OnBnClickedOk()
{
    this->SetWindowPos( NULL, 100,100,500,500, SWP_NOZORDER );
    CascadeWindows( NULL, MDITILE_ZORDER, NULL, NULL, NULL );
}

我可以观察到我的对话框已成功级联。

检查您的对话框是否具有窗口样式:
WS\u-EX\u-TOOLWINDOW
WS\u-EX\u-top
<代码>级联窗口将不会使用该样式排列窗口

我使用以下代码尝试了一个基于MFC示例对话框的应用程序:

void CTestCascadeDlg::OnBnClickedOk()
{
    this->SetWindowPos( NULL, 100,100,500,500, SWP_NOZORDER );
    CascadeWindows( NULL, MDITILE_ZORDER, NULL, NULL, NULL );
}

我可以观察到我的对话框已成功级联。

SetWindowPos不会更改窗口的任何属性,除了它的位置和大小,因此它不应该有任何方式影响级联窗口。如果不调用SetWindowPos,窗口是否正确层叠?SetWindowPos不会更改窗口的任何属性(除了其位置和大小),因此它不应该有任何方式影响层叠窗口。如果不调用SetWindowPos,窗口是否正确层叠?