Posición de los ToolBars al cargarse
¿Qué tal todo raguin? Espero que bien...
En un programa estoy usando 2 toolbars aparte del principal IDR_MAINFRAME, con los ID IDR_TOOLBAR1 y IDR_TOOLBAR2, para cargarlos agregué 2 variables miembros en "MainFrm.h" las cuales son:
CToolBar m_wndToolBar1;
CToolBar m_wndToolBar2;
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
//ESTE ES EL CODIGO ORIGINAL KE CARGA LA TOOLBAR PRINCIPAL
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
// TODO: Delete these three lines if you don't want the toolbar to
// be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
//ESTE ES EL CODIGO KE AGRERGÉ PARA CARGAR MIS TOOLBARS
if (!m_wndToolBar1.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar1.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0("Failed to create toolbar1\n");
return -1; // fail to create
}
m_wndToolBar1.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar1);
if (!m_wndToolBar2.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar2.LoadToolBar(IDR_TOOLBAR2))
{
TRACE0("Failed to create toolbar2\n");
return -1; // fail to create
}
m_wndToolBar2.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar2);
return 0;
}
Ahora, el detalle está en ke carga las toolbar una debajo de otra, de esta forma
M E N U P R I N C I P A L
|ToolBarPpal
|ToolBar1
|ToolBar2
Lo cual no es la idea, llevo días buscando la forma de que las cargue una al lado de la otra de la siguiente forma
M E N U P R I N C I P A L
|ToolBarPpal |ToolBar1 |ToolBar2
Lo más que he logrado hacer es cargarlas verticalmente el cada lado, cambiando el segundo parámetro que de la función CreateEx, cambiando CBRS_TOP por CBRS_LEFT o CBRS_RIGHT, kedando así
M E N U P R I N C I P A L
|ToolBarPpal
_ _
T T
O o
O l
l l
B B
A a
r r
1 2
Pero esto tampoco el lo que deseo, quisiera saber si puedes ayudarme a encontrar la forma de cargarlas una al lado de la otra para que quede así
M E N U P R I N C I P A L
|ToolBarPpal |ToolBar1 |ToolBar2
Tambien kiero aporvechar la oportunidad para preguntarte si sabes como detectar cuando la ventana de la aplicacion principal es maximizada, es una aplicacion MFC sdi con CFormView como clase base de la vista.
Me despido, y te agradezco por atenderme...
the hippiex...
En un programa estoy usando 2 toolbars aparte del principal IDR_MAINFRAME, con los ID IDR_TOOLBAR1 y IDR_TOOLBAR2, para cargarlos agregué 2 variables miembros en "MainFrm.h" las cuales son:
CToolBar m_wndToolBar1;
CToolBar m_wndToolBar2;
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
//ESTE ES EL CODIGO ORIGINAL KE CARGA LA TOOLBAR PRINCIPAL
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
// TODO: Delete these three lines if you don't want the toolbar to
// be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
//ESTE ES EL CODIGO KE AGRERGÉ PARA CARGAR MIS TOOLBARS
if (!m_wndToolBar1.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar1.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0("Failed to create toolbar1\n");
return -1; // fail to create
}
m_wndToolBar1.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar1);
if (!m_wndToolBar2.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar2.LoadToolBar(IDR_TOOLBAR2))
{
TRACE0("Failed to create toolbar2\n");
return -1; // fail to create
}
m_wndToolBar2.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar2);
return 0;
}
Ahora, el detalle está en ke carga las toolbar una debajo de otra, de esta forma
M E N U P R I N C I P A L
|ToolBarPpal
|ToolBar1
|ToolBar2
Lo cual no es la idea, llevo días buscando la forma de que las cargue una al lado de la otra de la siguiente forma
M E N U P R I N C I P A L
|ToolBarPpal |ToolBar1 |ToolBar2
Lo más que he logrado hacer es cargarlas verticalmente el cada lado, cambiando el segundo parámetro que de la función CreateEx, cambiando CBRS_TOP por CBRS_LEFT o CBRS_RIGHT, kedando así
M E N U P R I N C I P A L
|ToolBarPpal
_ _
T T
O o
O l
l l
B B
A a
r r
1 2
Pero esto tampoco el lo que deseo, quisiera saber si puedes ayudarme a encontrar la forma de cargarlas una al lado de la otra para que quede así
M E N U P R I N C I P A L
|ToolBarPpal |ToolBar1 |ToolBar2
Tambien kiero aporvechar la oportunidad para preguntarte si sabes como detectar cuando la ventana de la aplicacion principal es maximizada, es una aplicacion MFC sdi con CFormView como clase base de la vista.
Me despido, y te agradezco por atenderme...
the hippiex...
1 respuesta
Respuesta de raguin
1