Ver Mensaje Individual
  #3  
Antiguo 20-08-2011
_cero_ _cero_ is offline
Miembro
 
Registrado: abr 2007
Posts: 147
Reputación: 20
_cero_ Va por buen camino
3 barra de herramientas miniatura (botones en el preview).
http://www.megapix.com/?p=XKG2LLGN.jpg

A mi parecer esta es una característica muy útil, con esto puedes colocar hasta 6 botones (según la MSDN, no probé yo), que te servirán como un mini control remoto que te permite ejecutar X función de tu aplicación todo desde el preview, con lo que le ahorras al usuario un par de clicks y cambiar completamente a tu aplicación. En este caso se complica un poco más ya que tendremos que gestionar los mensajes de tipo “WM_COMMAND” y según el índice será tu acción. Al igual que con las características anteriores usaremos la clase “ITaskbarList3” y la estructura “THUMBBUTTON” para crear la mini-barra, y el puntero “Application->OnMessage” para la gestión de los mensajes.

Creación de la barra
Código:
                  TIcon* ico = new TIcon;
                  ima1->GetIcon( 0, ico );
   
                  //Creamos 2 botones
                  THUMBBUTTON bb[2];
                  bb[0].dwMask = THB_ICON | THB_TOOLTIP | THB_FLAGS; //Incluimos las banderas que determinan como se verá nuestro botón
                  bb[0].iId = 0; //Id que identificara nuestro botón al recibir los mensajes
                  bb[0].hIcon = ico->Handle; //Icono de nuestro botón
                  wcscpy(bb[0].szTip, L"Boton 1"); //Hint de nuestro botón
                  bb[0].dwFlags = THBF_ENABLED; //Incluimos las banderas del estado de nuestro botón
   
                  TIcon* ico2 = new TIcon;
                  ima1->GetIcon( 1, ico2 );
   
                  bb[1].dwMask = THB_ICON | THB_TOOLTIP | THB_FLAGS;
                  bb[1].iId = 1;
                  bb[1].hIcon = ico2->Handle;
                  wcscpy(bb[1].szTip, L"Boton 2");
                  bb[1].dwFlags = THBF_DISABLED; //Nótese que deshabilitamos el botón
   
                  //Creamos nuestra barra con el Handle de nuestra ventana, el número de botones, y la estructura THUMBBUTTON
                  itl->ThumbBarAddButtons( this->Handle, 2, bb );
Gestión de los mensajes
Código:
                  switch ( Msg.message ) {
                                 case WM_COMMAND: {
                                                 if ( HIWORD( Msg.wParam ) == THBN_CLICKED) {
                                                                 if ( LOWORD( Msg.wParam ) == 0) {
                                                                                MessageBoxA(Handle, "click boton 0", "", MB_ICONINFORMATION);
   
                                                                                //Editamos el botón 1
                                                                                bb[1].dwFlags = THBF_ENABLED;
                                                                                bb[1].dwMask = THB_ICON | THB_TOOLTIP | THB_FLAGS;
                      itl->ThumbBarUpdateButtons( this->Handle, 2, bb );
                                                                 }
                                                                 else if ( LOWORD( Msg.wParam ) == 1 ) {
                                                                                MessageBoxA(Handle, "click boton 1", "", MB_ICONINFORMATION);
                                                                                bb[1].dwFlags = THBF_DISABLED;
                                                                                itl->ThumbBarUpdateButtons( this->Handle, 2, bb );
                                                                 }
                                                 }
                                                 break
                                                 ;
                                 }
                  }
Ejemplo: http://www.megaupload.com/?d=8XMQ0WQL
Responder Con Cita