Я создал диалог тк с CSplitterWnd, который имеет три различных панелей, созданных, как это:Установка активной панели в CSplitterWnd
BOOL CUserSplit::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
WINDOWPLACEMENT wpDlg;
GetWindowPlacement(&wpDlg);
if (!m_wndSplitter.CreateStatic(this, 1, 3, WS_CHILD | WS_VISIBLE | WS_BORDER))
{
TRACE0("Failed to CreateStaticSplitter\n");
return FALSE;
}
if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CSearchDlg), CSize(250, 0), pContext))
{
TRACE0("Failed to create first pane\n");
return FALSE;
}
if (!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CProfileDlg), CSize(870, 0), pContext))
{
TRACE0("Failed to create second pane\n");
return FALSE;
}
if (!m_wndSplitter.CreateView(0, 2, RUNTIME_CLASS(CControlDlg), CSize(0, 0), pContext))
{
TRACE0("Failed to create third pane\n");
return FALSE;
}
SetWindowPos(NULL, 0, 0, 1285, 900, SWP_NOZORDER | SWP_NOMOVE);
GetParentFrame()->CenterWindow();
return TRUE;
}
Когда делают, как это первая панель активна на нагрузке. Как настроить вторую (среднюю) панель на активное?
Ваше первое решение отлично поработало. Спасибо! – Mangs
Если вам также нужен визуальный индикатор, если мышь не находится в текущем активном представлении, вы можете проверить [GetActiveView()] (https://msdn.microsoft.com/en-us/library/zs0t7t34.aspx) и установить курсор на другой курсор (я использую серую стрелку) при перемещении мыши –