我创建(生成)带有选项卡式文档的MDI项目 VS2008 Pro。 Visual Studio使用“文件/类”视图生成应用程序 窗口,属性窗口,输出窗口和第一个MDI文档/ 视图。
我想控制窗户停靠的两侧。我想这个 在BOOL CMainFrame :: CreateDockingWindows()中完成,我改变了 CBRS_TOP到CBRS_BOTTOM和CBRS_RIGHT到CBRS_LEFT,但是窗口 在客户区仍然出现相同的情况。没什么区别 什么用于CBRS_xxxx的窗口样式属性。在哪里以及如何 我可以控制这些窗口停靠在客户区的哪个位置? 我改变了:
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;
}
有人可以帮我解释一下如何控制哪里 这些窗户停靠? 谢谢。
答案 0 :(得分:1)
IIRC,CBRS_TOP等适用于可以停靠的地方,而不适用于启动应用程序时 停靠的位置。它保存在注册表中,基本上它会显示最后一次关闭应用程序时的位置。
过去(这不适用于Feature Pack停靠框架)如果您想要在启动时停靠到特定的一侧,则必须将工具栏所在的一侧设置为允许停靠的唯一一侧(例如,右边),创建工具栏,停靠它(有一个SetDocked()或类似的东西),然后将允许的停靠边修改为你想要允许的方向。我不确定当前版本中是否存在这种行为,但我认为确实如此,因为这是基于功能包正在构建的低级别停靠工具栏功能的基础。
不是一个真正的答案,但希望它会让你顺利...