MFC停靠窗口及其停靠位置
我已经创建(生成)了一个MDI项目,其中包含带有 VS2008专业版。 VisualStudio使用文件/类视图生成应用程序 窗口、属性窗口、输出窗口和第一个MDI文档/ 视图 我想控制windows停靠的侧面。我以为 是在BOOL CMainFrame::CreateDockingWindows()中完成的,我更改了 CBRS_顶部到CBRS_底部,CBRS_右侧到CBRS_左侧,但窗口 在客户区仍然是一样的。这没什么区别 CBRS_xxxx的窗口样式属性的用途。地点和方式 我可以控制这些windows停靠在客户端区域的哪个位置吗? 我当时改变了:MFC停靠窗口及其停靠位置,mfc,Mfc,我已经创建(生成)了一个MDI项目,其中包含带有 VS2008专业版。 VisualStudio使用文件/类视图生成应用程序 窗口、属性窗口、输出窗口和第一个MDI文档/ 视图 我想控制windows停靠的侧面。我以为 是在BOOL CMainFrame::CreateDockingWindows()中完成的,我更改了 CBRS_顶部到CBRS_底部,CBRS_右侧到CBRS_左侧,但窗口 在客户区仍然是一样的。这没什么区别 CBRS_xxxx的窗口样式属性的用途。地点和方式 我可以控制这些wi
BOOL CMainFrame::CreateDockingWindows()
{
BOOL bNameValid;
// Create class view
CString strClassView;
bNameValid = strClassView.LoadString(IDS_CLASS_VIEW);
ASSERT(bNameValid);
if (!m_wndClassView.Create(strClassView, this, CRect(0, 0, 200, 200), TRUE,ID_VIEW_CLASSVIEW, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI))
{
TRACE0("Failed to create Class View window\n");
return FALSE; // failed to create
}
// Create file view
CString strFileView;
bNameValid = strFileView.LoadString(IDS_FILE_VIEW);
ASSERT(bNameValid);
if (!m_wndFileView.Create(strFileView, this, CRect(0, 0, 200, 200),TRUE, ID_VIEW_FILEVIEW, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
WS_CLIPCHILDREN | CBRS_LEFT| CBRS_FLOAT_MULTI))
{
TRACE0("Failed to create File View window\n");
return FALSE; // failed to create
}
// Create output window
CString strOutputWnd;
bNameValid = strOutputWnd.LoadString(IDS_OUTPUT_WND);
ASSERT(bNameValid);
if (!m_wndOutput.Create(strOutputWnd, this, CRect(0, 0, 100, 100),
TRUE, ID_VIEW_OUTPUTWND, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
WS_CLIPCHILDREN | CBRS_BOTTOM | CBRS_FLOAT_MULTI))
{
TRACE0("Failed to create Output window\n");
return FALSE; // failed to create
}
// Create properties window
CString strPropertiesWnd;
bNameValid = strPropertiesWnd.LoadString(IDS_PROPERTIES_WND);
ASSERT(bNameValid);
if (!m_wndProperties.Create(strPropertiesWnd, this, CRect(0, 0, 200, 200), TRUE, ID_VIEW_PROPERTIESWND, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN |CBRS_RIGHT | CBRS_FLOAT_MULTI))
{
TRACE0("Failed to create Properties window\n");
return FALSE; // failed to create
}
SetDockingWindowIcons(theApp.m_bHiColorIcons);
return TRUE;
}
有人能帮我解释一下如何控制两边吗
这些窗口可以停靠吗?
谢谢 IIRC、CBRS_TOP等用于它们可以停靠的位置,而不是用于启动应用程序时停靠的位置。它保存在注册表中,基本上会显示上次关闭应用程序时它所在的位置 过去(这不是Feature Pack停靠框架),如果您想在启动时停靠到特定的一侧,必须将工具栏停靠的一侧设置为唯一允许停靠的一侧(例如,右侧),创建工具栏,将其停靠(有一个SetDocked()或类似的东西)然后将允许的停靠边修改为您希望允许的方向。我不确定这种行为在当前版本中是否仍然存在,但我认为它确实存在,因为这是构建在底层停靠工具栏功能上的东西,而功能包只是构建在这些功能上
这不是一个真正的答案,但希望它能让你走上正轨……IIRC、CBRS\u TOP等用于它们可以停靠的位置,而不是用于启动应用程序时停靠的位置。它保存在注册表中,基本上会显示上次关闭应用程序时它所在的位置 过去(这不是Feature Pack停靠框架),如果您想在启动时停靠到特定的一侧,必须将工具栏停靠的一侧设置为唯一允许停靠的一侧(例如,右侧),创建工具栏,将其停靠(有一个SetDocked()或类似的东西)然后将允许的停靠边修改为您希望允许的方向。我不确定这种行为在当前版本中是否仍然存在,但我认为它确实存在,因为这是构建在底层停靠工具栏功能上的东西,而功能包只是构建在这些功能上 不是一个真正的答案,但希望它能让你走上正轨