[C con Clase] Buscar un item dentro de una tool bar.

Jose Alberto Marza jamarza en pixelart.es
Lun Feb 18 16:56:48 CET 2008


Hola amigo:

Lo que quiero saber es el índice del botón de la toolbar que contiene el
ID que busco. Este ID es un item que esta dentro del menú desplegable
del botón.

Espero haberme explicado con claridad.

Gracias de antemano.

JoSé.

-----Mensaje original-----
De: cconclase-bounces en listas.conclase.net
[mailto:cconclase-bounces en listas.conclase.net] En nombre de Steven R.
Davidson
Enviado el: sábado, 16 de febrero de 2008 7:11
Para: Lista de correo sobre C y C++
Asunto: Re: [C con Clase] Buscar un item dentro de una tool bar.

Hola José Alberto,

Jose Alberto Marza wrote:

> Hola compañeros:
> 
> Tengo un problemilla que no termino de ver como solucionar.
> 
> Tengo una toolbar m_wndTBar que esta formada por varios botones con un

> menu asociado. Estoy interesado en localizar un item en concreto por 
> toda la toolbar y no lo consigo. Estoy probando con: 
> GetMenuItemInfo(menu,ID_...,&mii);.
> 

No entiendo por qué estás consultando el menú. El control de la barra de

herramientas (toolbar, en inglés) es un conjunto de botones, o mejor 
dicho un array de estructuras 'TBBUTTON'.

Para conseguir el índice de un botón que te interesa conocer según el 
número de identificación del comando de un botón, puedes enviar el 
mensaje 'TB_COMMANDTOINDEX' al control. Por ejemplo,

int nIndice = SendMessage( m_wndTBar, TB_COMMANDTOINDEX,
                            (WPARAM)nID, 0 );

Dando el índice del botón, puedes enviar el mensaje 'TB_GETBUTTON' para 
conseguir información acerca de tal botón. Por ejemplo,

TBBUTTON tbInfo;

SendMessage( m_wndTBar, TB_GETBUTTON,
              (WPARAM)nIndice, (LPARAM) &tbInfo);

Si quieres más información, puedes enviar el mensaje 'TB_GETBUTTONINFO',

pero debes pasar un puntero a una estructura 'TBBUTTONINFO' además de la

identificación de comando del botón. Esto sería,

TBBUTTONINFO tbbiInfo;

int nIndice = SendMessage( m_wndTBar, TB_GETBUTTONINFO,
                            (WPARAM)nID, (LPARAM) &tbbiInfo);


Ahora bien, si estás creando una barra de herramientas con algún botón 
que usa el estilo 'BTNS_DROPDOWN', entonces sí tendrás que crear un menú

  automático o emergente ("pop-up", en inglés). El menú saldrá al 
procesar el mensaje 'TBN_DROPDOWN' que forma parte del mensaje principal

'WM_NOTIFY'. Luego, necesitas invocar 'TrackPopupMenuEx()' para 
determinar la selección del usuario.


Espero que esto te sirva.

Steven




_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.ne
t
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ

__________ Información de NOD32, revisión 2882 (20080218) __________

Este mensaje ha sido analizado con NOD32 antivirus system
http://www.nod32.com






Más información sobre la lista de distribución Cconclase