Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Estrazione - pulsante.h

pulsante.h

Caricato da: AldoBaldo
Scarica il programma completo

  1. /// === PULSANTE 1.0 (31/01/2014) ==============================================
  2.  
  3. #ifndef PULSANTE_H
  4. #define PULSANTE_H
  5.  
  6. #include <windows.h>
  7. #include "offscreen.h"
  8.  
  9. #include <objidl.h>
  10. #include <gdiplus.h>
  11. using namespace Gdiplus;
  12.  
  13.  
  14. #define kPULSANTEDisattivo  -1
  15. #define kPULSANTESelezionato 0
  16. #define kPULSANTEPremuto     1
  17. #define kPULSANTESopra       2
  18. #define kPULSANTENormale     3
  19.  
  20.  
  21. class PULSANTE {
  22.  
  23.     public:
  24.     PULSANTE();
  25.     PULSANTE( int x, int y, int w, int h, const char *titolo = NULL );
  26.     // NOTA: le funzioni creatrici potrebbero lanciare
  27.     //       un'eccezione di tipo const char *
  28.     virtual ~PULSANTE();
  29.  
  30.     void attiva( BOOL att = TRUE, BOOL agg = TRUE );
  31.     void sta_giu( BOOL giu = TRUE ) { staGiu = giu; }
  32.     void seleziona( BOOL sel = TRUE, BOOL agg = TRUE );
  33.     void set_rettangolo( int x, int y, int w, int h );
  34.     void set_titolo( const char *titolo, BOOL agg = TRUE );
  35.     // NOTA: la funzione set_titolo() potrebbe lanciare
  36.     //       un'eccezione di tipo const char *
  37.     void set_dimensione_font( REAL dim, BOOL agg = TRUE );
  38.     void set_allineamento_orizzontale( int allineamento, BOOL agg = TRUE );
  39.     void set_allineamento_verticale( int allineamento, BOOL agg = TRUE );
  40.     void set_spessore_bordo( unsigned int spBordo, BOOL agg = TRUE );
  41.     void set_colori_sfondo( ARGB cDisattivo, ARGB cNormale, ARGB cSopra,
  42.                             ARGB cPremuto, ARGB cSelezionato, BOOL agg = TRUE );
  43.     void set_colori_tratto( ARGB cDisattivo, ARGB cNormale, ARGB cSopra,
  44.                             ARGB cPremuto, ARGB cSelezionato, BOOL agg = TRUE );
  45.     void set_offscreen( OFFSCREEN *os );
  46.  
  47.     BOOL selezionato( void ) { return stato == kPULSANTESelezionato; }
  48.     RECT *get_rettangolo( RECT *rct );
  49.     Rect *get_rettangolo( Rect *rct );
  50.     RectF *get_rettangolo( RectF *rct );
  51.  
  52.     BOOL in( LONG x, LONG y );
  53.     BOOL sopra( LONG x, LONG y );
  54.     BOOL click( LONG x, LONG y );
  55.     void simula_click( void );
  56.  
  57.     void traccia( BOOL agg = TRUE );
  58.     void aggiorna( void );
  59.  
  60.     protected:
  61.  
  62.     private:
  63.     OFFSCREEN *os;
  64.     RECT r;
  65.     int wBordo;
  66.     WCHAR *t;
  67.     REAL dimFont;
  68.     char allinOrizz;
  69.     char allinVert;
  70.     char stato;
  71.     char staGiu;
  72.     ARGB sfondo[5];
  73.     ARGB tratto[5];
  74.  
  75.     void TracciaTitolo( Graphics *gfx, SolidBrush *pennello, RectF *rf );
  76.     BOOL SeguiMouse( LONG x, LONG y );
  77.     ARGB Colore( short tipo );
  78. };
  79.  
  80. typedef PULSANTE* PULSANTEPTR;
  81.  
  82. #endif // PULSANTE_H