Share via


Ejemplo DOCKTOOL: muestra barras de herramientas acoplables

Actualización: noviembre 2007

El ejemplo DOCKTOOL muestra la compatibilidad con las barras de herramientas acoplables. Se puede utilizar CMiniFrameWnd para asociar, o acoplar, una barra de herramientas acoplable a cualquier lado de la ventana primaria, o para desacoplarla o dejarla flotando en su propia ventana de marco reducido.

Nota de seguridad:

Este código de ejemplo se proporciona para ilustrar un concepto y no debe utilizarse en aplicaciones o sitios Web, ya que quizás no ilustre las prácticas de codificación más seguras. Microsoft no asume ninguna responsabilidad por daños incidentales o consecuentes en caso de que el código de ejemplo se utilice para propósitos distintos de aquellos para los que se concibió.

Para obtener ejemplos e instrucciones para su instalación:

  • En el menú Ayuda de Visual Studio, haga clic en Ejemplos.

    Para obtener más información, vea Localizar archivos de ejemplo.

  • La lista de ejemplos completa con la versión más reciente está disponible en línea en la página Visual Studio 2008 Samples.

  • También encontrará ejemplos en el disco duro de su equipo. De manera predeterminada, los ejemplos y el archivo Léame se copian en una carpeta bajo \Archivos de programa\Visual Studio 9.0\Samples\. Para las versiones Express de Visual Studio, todos los ejemplos están en línea.

Generar y ejecutar el ejemplo

Para generar y ejecutar el ejemplo DOCKTOOL

  1. Abra la solución docktool.sln.

  2. En el menú Generar, haga clic en Generar.

  3. En el menú Depurar, haga clic en Iniciar sin depurar.

Incluir la compatibilidad con barras de herramientas acoplables

Los tres pasos siguientes son necesarios para colocar una barra de herramientas acoplable en la aplicación:

  1. Habilite el acoplamiento para la ventana de marco o de destino mediante la función CFrameWnd::EnableDocking. Un parámetro DWORD indica qué lado de la ventana de marco acepta el acoplamiento. Para acoplar barras de controles en cualquier punto, pase CBRS_ALIGN_ANY a EnableDocking.

  2. Habilite el acoplamiento para la barra de herramientas o el origen llamando a CControlBar::EnableDocking para cada barra de herramientas. Especifique los lados de destino a los que desea acoplar la barra de herramientas. Si ninguno de los lados especificados coincide con los lados habilitados para el acoplamiento en la ventana de marco, la barra de herramientas no se puede acoplar y quedará flotando. Cuando queda flotando, permanece como una barra de herramientas flotante, incapaz de acoplarse a la ventana de marco.

  3. Acople la barra de herramientas a la ventana de marco llamando a CFrameWnd::DockControlBar. También puede llamar a CFrameWnd::FloatControlBar para desacoplar una barra de herramientas acoplable de la ventana de marco.

Si falta alguno de estos pasos, la aplicación mostrará una barra de herramientas estándar. Los dos últimos pasos se deben realizar para cada barra de herramientas acoplable dentro de la aplicación.

Para conservar el estado de las barras de herramientas acoplables (independientemente de si están acopladas o son barras flotantes) entre llamadas de la aplicación, utilice las funciones CControlBar::SetBarStyle y CControlBar::GetBarStyle para recuperar y restaurar la configuración de una barra de controles concreta. Normalmente, esta información se almacena en el archivo .ini de la aplicación mediante CFrameWnd::SaveBarState y se recupera mediante CFrameWnd::LoadBarState.

Palabras clave

En este ejemplo, se muestra el uso de las siguientes palabras clave:

AfxGetApp; CArchive::IsStoring; CComboBox::Create; CComboBox::DeleteString; CComboBox::GetCount; CComboBox::InsertString; CComboBox::SetCurSel; CControlBar::GetBarStyle; CControlBar::SetBarStyle; CDialog::DoModal; CDocument::OnNewDocument; CFrameWnd::Create; CFrameWnd::DockControlBar; CFrameWnd::EnableDocking; CFrameWnd::LoadBarState; CFrameWnd::RecalcLayout; CFrameWnd::SaveBarState; CMenu::GetSubMenu; CMenu::LoadMenu; CMenu::TrackPopupMenu; CObject::AssertValid; CObject::Dump; CObject::Serialize; CRect::OffsetRect; CString::IsEmpty; CToolBar::Create; CToolBar::GetItemRect; CToolBar::LoadBitmap; CToolBar::SetButtonInfo; CToolBar::SetButtons; CView::GetDocument; CView::OnDraw; CWinApp::AddDocTemplate; CWinApp::InitInstance; CWinApp::LoadStdProfileSettings; CWinApp::OnFileNew; CWnd::ClientToScreen; CWnd::DoDataExchange; CWnd::FromHandlePermanent; CWnd::GetParentFrame; CWnd::GetStyle; CWnd::GetWindowPlacement; CWnd::GetWindowRect; CWnd::GetWindowText; CWnd::Invalidate; CWnd::IsZoomed; CWnd::OnClose; CWnd::OnCreate; CWnd::PreTranslateMessage; CWnd::SendMessage; CWnd::SetWindowPlacement; CWnd::SetWindowPos; CWnd::SetWindowText; CWnd::ShowWindow; GetProfileInt; GetProfileString; GetStockObject; HIWORD; LOWORD; LoadBitmap; WriteProfileString; wsprintf

Nota:

Algunos ejemplos, como éste, no se han modificado para reflejar los cambios en los asistentes, las bibliotecas y el compilador de Visual C++, pero, aun así, muestran cómo realizar la tarea deseada.

Vea también

Otros recursos

Ejemplos de MFC