Technology Experience

Contenuti gestiti da Igor Damiani
posts - 949, comments - 2741, trackbacks - 15120

My Links

News

  • Questo blog si propone di raccogliere riflessioni, teoriche e pratiche, su tutto quello che riguarda il world-computing che mi sta attorno: programmazione in .NET, software attuale e futuro, notizie provenienti dal web, tecnologia in generale, open-source.

    L'idea è quella di lasciare una sorta di patrimonio personale, una raccolta di idee che un giorno potrebbe farmi sorridere, al pensiero di dov'ero e cosa stavo facendo.

    10/05/2005,
    Milano

Archives

Post Categories

Generale

Ok, vada per l'hourglass, ma ci sono altri cursori?

Nel pot di prima, abbiamo visto come mostrare l'icona della clessidra sul display del palmare, nel caso in cui dobbiamo comunicare all'utente che l'applicazione sta facendo qualcosa che dura un po' di tempo. Nel codice abbiamo utilizzato una costante intera valorizzata a 32514, 0x7F02. Posso farlo?
Quali altre icone abbiamo a disposizione?
Che valori devo utilizzare per poterle visualizzare sullo schermo?

La soluzione più rapida consiste nell'installarsi in locale sul proprio PC il Microsoft Platform Builder 5.0, per gli amici il Windows Mobile 5.0 Pocket PC SDK, che contiene tutte le informazioni necessarie allo sviluppo su mobile. Tale documentazione contiene anche info sulla funzione LoadCursor, di cui abbiamo già parlato. La pagina relativa a questa funzione ci svela alcuni dettagli interessanti, come i nomi delle costanti IDC_APPSTARTING, IDC_ARROW, IDC_CROSS, IDC_HAND e così via, fino a IDC_WAIT, che guarda caso è la clessidra. Non ci vengono comunicati i valori di queste costanti, ma la soluzione è dietro l'angolo.

Il file header di queste funzioni è Winuser.h, è sufficiente cercarlo sul proprio hard-disk: lo troverete solo se avete installato l'SDK di cui sopra. A me è finito in queste directory:

C:\Programmi\Microsoft SDKs\Windows\v6.0\Include
C:\Programmi\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Include\Armv4i

Indipendentemente dal file che guardate, i valori delle costanti è ovviamente sempre lo stesso, e cioè:

/* * Standard Cursor IDs */ #define IDC_ARROW MAKEINTRESOURCE(32512) #define IDC_IBEAM MAKEINTRESOURCE(32513) #define IDC_WAIT MAKEINTRESOURCE(32514) #define IDC_CROSS MAKEINTRESOURCE(32515) #define IDC_UPARROW MAKEINTRESOURCE(32516) #define IDC_SIZE MAKEINTRESOURCE(32640) /* OBSOLETE: use IDC_SIZEALL */ #define IDC_ICON MAKEINTRESOURCE(32641) /* OBSOLETE: use IDC_ARROW */ #define IDC_SIZENWSE MAKEINTRESOURCE(32642) #define IDC_SIZENESW MAKEINTRESOURCE(32643) #define IDC_SIZEWE MAKEINTRESOURCE(32644) #define IDC_SIZENS MAKEINTRESOURCE(32645) #define IDC_SIZEALL MAKEINTRESOURCE(32646) #define IDC_NO MAKEINTRESOURCE(32648) /*not in win3.1 */ #if(WINVER >= 0x0500) #define IDC_HAND MAKEINTRESOURCE(32649) #endif /* WINVER >= 0x0500 */ #define IDC_APPSTARTING MAKEINTRESOURCE(32650) /*not in win3.1 */ #if(WINVER >= 0x0400) #define IDC_HELP MAKEINTRESOURCE(32651) #endif /* WINVER >= 0x0400 */

Se invece della clessidra volete mettere un'altra icona, è sufficiente cambiare il cursorID. Consiglio spassionato? Definire un enum che contiene tutti i valori per avere codice più leggibile, più chiaro e più semplice da tramandare ai posteri (ogni riferimento a Pier ex-collega è puramente casuale).

Print | posted on mercoledì 11 aprile 2007 19:12 | Filed Under [ Sviluppo .NET ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET