- Tipos de eventos de gráfico
- Períodos de gráficos
- Propiedades de gráficos
- Posicionamiento de gráfico
- Visualización de gráficos
- Ejemplos de trabajo con el gráfico
Tipos de eventos de gráfico
Existen 11 tipos de eventos que pueden ser procesados utilizando la función predefinida OnChartEvent(). Para los eventos de usuario están previstos 65535 identificadores en el rango de CHARTEVENT_CUSTOM a CHARTEVENT_CUSTOM_LAST inclusive. Para generar un evento de usuario hace falta usar la función EventChartCustom().
ENUM_CHART_EVENT
Identificador |
Descripción |
|---|---|
CHARTEVENT_KEYUP |
Liberación de tecla |
CHARTEVENT_KEYDOWN |
Teclazos |
CHARTEVENT_MOUSE_MOVE |
Desplazamiento del ratón y pulsación de los botones del ratón (si para el gráfico está establecida la propiedad CHART_EVENT_MOUSE_MOVE=true) |
CHARTEVENT_MOUSE_WHEEL |
Pulsar o deslizar la rueda del ratón (si para el gráfico se ha establecido la propiedad CHART_EVENT_MOUSE_WHEEL=true) |
CHARTEVENT_OBJECT_CREATE |
Creación de un objeto gráfico (si para el gráfico está establecida la propiedad CHART_EVENT_OBJECT_CREATE=true) |
CHARTEVENT_OBJECT_CHANGE |
Evento de cambio de propiedades de un objeto gráfico a través del diálogo de propiedades |
CHARTEVENT_OBJECT_DELETE |
Eliminación de un objeto gráfico (si para el gráfico está establecida la propiedad CHART_EVENT_OBJECT_DELETE=true) |
CHARTEVENT_CLICK |
Clic en un gráfico |
CHARTEVENT_OBJECT_CLICK |
Clic en un objeto gráfico |
CHARTEVENT_OBJECT_DRAG |
Arrastrar un objeto gráfico |
CHARTEVENT_OBJECT_ENDEDIT |
Fin de edición del texto en el objeto gráfico Edit |
CHARTEVENT_CHART_CHANGE |
Modificación de dimensiones del gráfico o de sus propiedades a través del diálogo de propiedades |
CHARTEVENT_CUSTOM |
Número inicial de un evento del rango de eventos de usuario |
CHARTEVENT_CUSTOM_LAST |
Número final de un evento del rango de eventos de usuario |
Evento CHARTEVENT_KEYUP
El evento CHARTEVENT_KEYUP se produce cuando el usuario suelta una tecla del teclado mientras la ventana del gráfico tiene el foco de entrada. Este evento complementa el CHARTEVENT_KEYDOWN existente, que se genera al presionar una tecla. El uso de ambos eventos permite determinar con precisión cuándo se presionan y sueltan las teclas, lo cual resulta útil al crear interfaces de usuario y herramientas con controles interactivos.
void OnChartEvent(const int id,
|
El valor lparam contiene un código de la tecla (KeyCode) similar al evento CHARTEVENT_KEYDOWN. Para obtener la representación de texto de una tecla, puede utilizar la función TranslateKey().
Procesamiento de teclas "muertas" (Dead Keys)
Se admite el procesamiento de las llamadas "teclas muertas" (dead keys). Estas son teclas que no ingresan un carácter inmediatamente, sino que cambian la apariencia del siguiente carácter ingresado. Por ejemplo, en la disposición griega, la tecla ; se usa para poner los acentos en las vocales (ά, έ, ύ y otras).
Ahora estas teclas se pueden monitorear con ayuda de la función TranslateKey() en los manejadores CHARTEVENT_KEYDOWN y CHARTEVENT_KEYUP. Esto permite la detección correcta de la pulsación y la liberación de combinaciones de teclas complejas en diseños multilingües.
void OnChartEvent(const int id,
|
El procesamiento de teclas muertas resulta útil al implementar campos de texto personalizados, sistemas de teclas de acceso rápido e interfaces compatibles con distribuciones de teclado internacionales.
Parámetros de entrada de la función OnChartEvent
Para cada tipo del evento, los parámetros de entrada de la función OnChartEvent() tienen determinados valores que son necesarios para procesar este evento. En la tabla de abajo están especificados los eventos y valores que se pasan a través de los parámetros.
Evento |
Valor del parámetro id |
Valor del parámetro lparam |
Valor del parámetro dparam |
Valor del parámetro sparam |
|---|---|---|---|---|
Evento de liberación de tecla |
CHARTEVENT_KEYUP |
Código de la tecla soltada |
Número de repeticiones del evento, siempre 1 |
Valor string de máscara de bits que describe el estado de las teclas-modificadoras. Vea WM_KEYUP message |
Evento de pulsación de tecla |
CHARTEVENT_KEYDOWN |
Código de la tecla pulsada |
Número de veces que se repetirá un evento cuando se mantenga presionada una tecla |
Valor string de máscara de bits que describe el estado de las teclas-modificadoras. Vea WM_KEYDOWN message |
Eventos del ratón (si para el gráfico está establecida la propiedad CHART_EVENT_MOUSE_MOVE=true) |
CHARTEVENT_MOUSE_MOVE |
coordinada X |
coordinada Y |
Valor literal de la máscara de bits que describe el estatus de los botones del ratón |
Evento de rueda del ratón (si para el gráfico se ha establecido el evento CHART_EVENT_MOUSE_WHEEL=true) |
CHARTEVENT_MOUSE_WHEEL |
Banderas de estados de las teclas y los botones del ratón, coordenadas X e Y del ratón. Se da una descripción en el ejemplo de abajo |
Valor Delta del deslizamiento de la rueda del ratón |
|
Evento de creación de un objeto gráfico (si para el gráfico está establecida la propiedad CHART_EVENT_OBJECT_CREATE=true) |
CHARTEVENT_OBJECT_CREATE |
|
|
Nombre del objeto gráfico creado |
Evento del cambio de propiedades de un objeto a través del diálogo de propiedades |
CHARTEVENT_OBJECT_CHANGE |
|
|
Nombre del objeto gráfico modificado |
Evento de eliminación de un objeto gráfico (si para el gráfico está establecida la propiedad CHART_EVENT_OBJECT_DELETE=true) |
CHARTEVENT_OBJECT_DELETE |
|
|
Nombre del objeto gráfico eliminado |
Evento de cliquear sobre un gráfico |
CHARTEVENT_CLICK |
coordinada X |
coordinada Y |
|
Evento de cliquear sobre un objeto gráfico |
CHARTEVENT_OBJECT_CLICK |
coordinada X |
coordinada Y |
Nombre del objeto gráfico en el que ha ocurrido un evento |
Evento de mover un objeto gráfico con el ratón |
CHARTEVENT_OBJECT_DRAG |
|
|
Nombre del objeto gráfico movido |
Evento del fin de edición del texto en el campo de introducción del objeto gráfico "Campo de texto" |
CHARTEVENT_OBJECT_ENDEDIT |
|
|
Nombre del objeto gráfico "Campo de texto" donde ha finalizado la introducción del texto |
Evento de modificación de dimensiones del gráfico o de sus propiedades a través del diálogo de propiedades |
CHARTEVENT_CHART_CHANGE |
|
|
|
Identificador del evento de usuario |
CHARTEVENT_CUSTOM+N |
Valor determinado por la función EventChartCustom() |
Valor determinado por la función EventChartCustom() |
Valor determinado por la función EventChartCustom() |
Ejemplo:
#define KEY_NUMPAD_5 12 |
For CHARTEVENT_MOUSE_MOVE event the sparam string parameter contains information about state of the keyboard and mouse buttons:
Bit |
Description |
|---|---|
1 |
State of the left mouse button |
2 |
State of the right mouse button |
3 |
State of the SHIFT button |
4 |
State of the CTRL button |
5 |
State of the middle mouse button |
6 |
State of the first extra mouse button |
7 |
State of the second extra mouse button |
Example:
//+------------------------------------------------------------------+
|
Para el evento CHARTEVENT_MOUSE_WHEEL los parámetros lparam y dparam contienen información sobre el estado de los botones Ctrl, Shift, de los botoenes del ratón, las coordenadas del cursor y la amplitud del deslizamiento de la rueda del ratón. Para que resulte más comprensible, inicie este asesor en el gráfico y deslice la rueda del ratón pulsando por turnos los diferentes botones y teclas descritas en el código.
Ejemplo de procesamiento del evento CHARTEVENT_MOUSE_WHEEL:
//+------------------------------------------------------------------+
|
Véase también