PDA

View Full Version : [Win32] Icona del programma in alto a destra


tomminno
21-05-2007, 22:56
Come si deve fare ad impostare l'icona in alto a destra in un programma?
Se non ho capito male viene presa la prima in ordine alfabetico e/o con ID più basso, ma usando questi criteri, viene visualizzata sulla taskbar ma non in alto a destra.
Come fare?

71104
22-05-2007, 01:35
... :wtf: :confused:

in alto a destra c'è il tasto X... volevi dire sinistra, cioè l'icona del menu di sistema di una finestra? quella viene impostata nella struttura WNDCLASS(EX).

andbin
22-05-2007, 09:51
Come si deve fare ad impostare l'icona in alto a destra in un programma?
Se non ho capito male viene presa la prima in ordine alfabetico e/o con ID più basso, ma usando questi criteri, viene visualizzata sulla taskbar ma non in alto a destra.Una finestra può avere 2 icone: una "large" e l'altra "small". Sono impostabili quando si crea una classe di finestra tramite la struttura WNDCLASSEX. Se invece ad esempio hai a che fare con una dialog-box di classe "standard" (cioè non di una tua classe) in genere si impostano le icone con il messaggio WM_SETICON.

Per quanto riguarda la icona che explorer mostra, ci sono delle regole ben precise, spiegate <qui> (http://msdn2.microsoft.com/en-us/library/ms997538.aspx) nella sezione "Choosing an Icon".

tomminno
22-05-2007, 14:32
Una finestra può avere 2 icone: una "large" e l'altra "small". Sono impostabili quando si crea una classe di finestra tramite la struttura WNDCLASSEX. Se invece ad esempio hai a che fare con una dialog-box di classe "standard" (cioè non di una tua classe) in genere si impostano le icone con il messaggio WM_SETICON.

Per quanto riguarda la icona che explorer mostra, ci sono delle regole ben precise, spiegate <qui> (http://msdn2.microsoft.com/en-us/library/ms997538.aspx) nella sezione "Choosing an Icon".

Sto usando le wx, ma non è un problema perchè ho accesso diretto alle API Win32.

Windows NT simply chooses the first resource listed in the application's RC script.

Usando questo metodo imposto l'icona del programma, ovvero quella visualizzata da explorer sull'eseguibile, quella visualizzata sulla taskbar, ma non quella in alto a sinistra (ehm si avevo sbagliato parte).
Ho provato anche con il messaggio WM_SETICON (usando GetHWND() sulla classe wxFrame base), ma il risultato è lo stesso, forse è sbagliato l'handle. Però non capisco perchè negli altri casi viene interpretata correttamente come l'icona del programma.

andbin
22-05-2007, 14:57
Usando questo metodo imposto l'icona del programma, ovvero quella visualizzata da explorer sull'eseguibile, quella visualizzata sulla taskbar, ma non quella in alto a sinistra (ehm si avevo sbagliato parte).Che codice usi per caricare le icone large e small?