Share via


Objetos de contexto de selección

El entorno de desarrollo integrado (IDE) de Visual Studio usa un objeto de contexto de selección global para determinar qué se debe mostrar en el IDE. Cada ventana del IDE puede tener su propio objeto de contexto de selección insertado en el contexto de selección global. El IDE actualiza el contexto de selección global con valores de una ventana cuando esa ventana tiene el foco. Para obtener más información, vea Comentarios al usuario.

Cada marco de ventana o sitio del IDE tiene un servicio denominado STrackSelection. El objeto creado por el VSPackage que se encuentra en el marco de la ventana debe llamar al QueryService método para obtener un puntero a la ITrackSelection interfaz.

Las ventanas de fotogramas pueden impedir que las partes de su información de contexto de selección se propaguen al contexto de selección global cuando se inician. Esta capacidad es útil para las ventanas de herramientas que pueden tener que empezar con una selección vacía.

Al modificar el contexto de selección global, se desencadenan eventos que VSPackages puede supervisar. VSPackages puede realizar las siguientes tareas mediante la implementación IVsTrackSelectionEx e IVsMonitorSelection interfaces:

  • Actualice el archivo activo actualmente en una jerarquía.

  • Supervise los cambios en determinados tipos de elementos. Por ejemplo, si vsPackage usa una ventana propiedades especiales, puede supervisar los cambios en la ventana Propiedades activas y reiniciar el suyo cuando sea necesario.

    En la secuencia siguiente se muestra el curso típico del seguimiento de selección.

  1. El IDE recupera el contexto de selección de la ventana recién abierta y lo coloca en el contexto de selección global. Si el contexto de selección usa HIERARCHY_DONTPROPAGATE o SELCONTAINER_DONTPROPAGATE, esa información no se propaga al contexto global. Para obtener más información, vea Comentarios al usuario.

  2. Los eventos de notificación se transmiten a cualquier VSPackage que los solicite.

  3. VSPackage actúa en los eventos que recibe realizando actividades como actualizar una jerarquía, reactivar una herramienta u otras tareas similares.

Consulte también