Share via


Acerca de los controles rebar

Un control Rebar actúa como contenedor para ventanas secundarias. Puede contener una o varias bandas, y cada banda puede tener cualquier combinación de una barra de agarre, un mapa de bits, una etiqueta de texto y una ventana secundaria. Una aplicación asigna una ventana secundaria (normalmente otro control) a una banda de control de barra. A medida que se cambia la posición dinámica de una banda de control de barra, el control de barra administra el tamaño y la posición de la ventana secundaria asignada a esa banda. Además, una aplicación puede especificar un mapa de bits de fondo para una banda y el control de barra mostrará la ventana secundaria de la banda sobre el mapa de bits.

En la siguiente captura de pantalla se muestra un control de barra que tiene dos bandas. Uno contiene una barra de herramientas y la otra contiene un cuadro combinado. Ambas bandas tienen una pinza que les permite moverlas y cambiar su tamaño.

captura de pantalla del cuadro de diálogo que muestra un control de barra de rebar con una banda que contiene una barra de herramientas y una banda que contiene un cuadro combinado

Nota

El control rebar se implementa en la versión 4.70 y posteriores de Comctl32.dll.

 

Barras de barras y ventanas secundarias

Una aplicación define los rasgos de una banda de rebar mediante los mensajes de RB_INSERTBAND y RB_SETBANDINFO . Estos mensajes aceptan la dirección de una estructura REBARBANDINFO como el parámetro lParam . Los miembros de la estructura REBARBANDINFO definen los rasgos de una banda determinada. Para establecer los rasgos de una banda, establezca el miembro cbsize para indicar el tamaño de la estructura, en bytes. A continuación, establezca el miembro fMask para indicar qué miembros de estructura rellena la aplicación.

Para asignar una ventana secundaria a una banda, incluya la marca RBBIM_CHILD en el miembro fMask de la estructura REBARBANDINFO y, a continuación, establezca el miembro hwndChild en el identificador de la ventana secundaria. Las aplicaciones pueden establecer el ancho mínimo permitido y el alto de una ventana secundaria en los miembros cxMinChild y cyMinChild .

Cuando se destruye un control de barra, destruye las ventanas secundarias asignadas a las bandas que contiene. Para evitar que el control destruya ventanas secundarias asignadas a sus bandas, quite las bandas enviando el mensaje de RB_DELETEBAND y, a continuación, use el mensaje RB_SETPARENT para restablecer el elemento primario a otra ventana antes de destruir el control de barra de rebar.

Interfaz de usuario del control rebar

Todas las bandas del control rebar se pueden cambiar de tamaño, excepto las que usan el estilo RBBS_FIXEDSIZE. Para cambiar el tamaño o cambiar el orden de las bandas dentro del control, haga clic y arrastre la barra de agarre de una banda. El control de barra cambia automáticamente el tamaño y cambia la posición de las ventanas secundarias asignadas a sus bandas. Además, puede alternar el tamaño de una banda haciendo clic en el texto de la banda, si hay alguno.

Lista de imágenes del control Rebar

Si una aplicación usa una lista de imágenes con un control rebar, debe enviar el mensaje RB_SETBARINFO antes de agregar bandas al control. Este mensaje acepta la dirección de una estructura REBARINFO como el parámetro lParam . Antes de enviar el mensaje, prepare la estructura REBARINFO estableciendo el miembro cbSize en el tamaño de la estructura, en bytes. A continuación, si el control de barra de rebar va a mostrar imágenes en las bandas, establezca el miembro fMask en la marca RBIM_IMAGELIST y asigne un identificador de lista de imágenes al miembro himl . Si la barra de rebar no usará imágenes de banda, establezca fMask en cero.

Rebar Control Message Forwarding

Un control de barra reenvía todos los mensajes de ventana WM_NOTIFY a su ventana principal. Además, un control de barra reenvía los mensajes enviados a él desde ventanas asignadas a sus bandas, como WM_CHARTOITEM, WM_COMMAND y otros.