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,窗口是否正确层叠?