Opcion de menu desactivada

09/07/2005 - 21:42 por JLK | Informe spam
Hola
Cuando utilizas el AppWizard para crear un projecto SDI o MDI se crea una
especie de esqueleto
de lo que será la aplicación, se crea el menú con las opciones más
elementales. Entre ellas las opciones
de "copiar", "pegar" etc..
Bien estas opciones de "cortar-copiar-pegar" en principio se muestran
desactivadas y cuando
se implementa un manejador para alguna de ellas, entonces es cuando se
muestra activa dicha opción de menú.

MI PREGUNTA:
¿Cual es el mecanismo que utiliza VC++ para hacer esto, es decir para
desactivar una opción hasta que no
se implemente un manejador que procese el mensaje enviado al elegir dicha
opción.?
O es en realidad el sistema operativo(en mi caso Windows) el que hace esto??

Gracias por anticipado y...
Un saludo para todos.

JLK.
 

Leer las respuestas

#1 Hernán
10/07/2005 - 01:29 | Informe spam
"JLK" escribía:

Hola
Cuando utilizas el AppWizard para crear un projecto SDI o MDI se crea una
especie de esqueleto
de lo que será la aplicación, se crea el menú con las opciones más
elementales. Entre ellas las opciones
de "copiar", "pegar" etc..
Bien estas opciones de "cortar-copiar-pegar" en principio se muestran
desactivadas y cuando
se implementa un manejador para alguna de ellas, entonces es cuando se
muestra activa dicha opción de menú.

MI PREGUNTA:
¿Cual es el mecanismo que utiliza VC++ para hacer esto, es decir para
desactivar una opción hasta que no
se implemente un manejador que procese el mensaje enviado al elegir dicha
opción.?
O es en realidad el sistema operativo(en mi caso Windows) el que hace esto??

Gracias por anticipado y...
Un saludo para todos.

JLK.




Tu programa es quien lo hace. El cuando lo elegís vos.

Para el item "pegar", puedes hacer un query en el _init_menú_,
preguntando al clipboard si contiene data en un formato que tu
aplicación maneje y, según sea la respuesta, habilitar o inhabilitar
el item. O puedes convertir tu programa en un visor del portapapeles,
entonces cada vez que ocurra un cambio va a ser notificado y allí
mismo puedes habilitar o inhabilitar el item, según haya data pegable.

Para el "cortar-copiar", el usuario tiene que poder seleccionar data
cortable/copiable (el clipboard es user-driven). Si lo hizo, lo
habilitas, sino no. ¿Cuándo? cuando hace la selección o durante el
WM_INITMENU[POPUP]. Cuando vos quieras.

Si tu programa tiene una toolbar que duplica a estos items del menú,
lo lógico es hacer los cambios al toque y no en el momento de
desplegar el menú.

Preguntas similares