Domanda

Ho studiato lo sforzo necessario per visualizzare le voci di menu in grassetto - senza dover disegnare il menu da solo - e ho scoperto lo stato delle voci di menu MFS_DEFAULT dopo aver cercato su Google. La Documentazione MSDN menziona

  

MFS_DEFAULT
  Specifica che il menu   l'elemento è il valore predefinito. Un menu può   contiene solo una voce di menu predefinita,   che viene visualizzato in grassetto.

Ho sperimentato e appare che contrariamente alla documentazione, mi sembra di essere in grado di usare questo flag per visualizzare più (o forse tutte!) voci di menu in grassetto. Qualcuno ha qualche esperienza con questo, cioè se ci sono insidie ??nell'avere più voci di menu in grassetto? Mi sembra un po 'un trucco arrivare a quello che sto cercando di ottenere e sono un po' preoccupato per gli effetti collaterali sconosciuti (ovvero avere più voci di menu "predefinite" in un singolo menu).

EDIT: dovrei anche aggiungere che questo articolo afferma che MFS_DEFAULT flag non fa altro che visualizzare la voce di menu in grassetto; tuttavia, sono un po 'diffidente nei confronti della documentazione "ufficiale" ...

EDIT2: lo scopo era quello di dire all'utente che la voce di menu in questione (cioè quella in grassetto) può anche essere invocata facendo doppio clic sul controllo in questione (la voce di menu fa parte del menu di scelta rapida). Quando ho pensato a questo problema, non ho considerato il fatto che - di solito - solo un comando può essere associato all'evento doppio clic (d'oh!). In quanto tale ho accettato la risposta di zaphod (non risponde direttamente a questa domanda ma ha risolto il mio "problema")

È stato utile?

Soluzione

Cosa stai cercando di ottenere?

Sospetto che la più grande obiezione all'utilizzo di MFS_DEFAULT per uno scopo diverso da quello a cui era destinato sia la violazione di una convenzione visiva che Microsoft sta cercando di divulgare sul significato delle voci di menu in grassetto e sul modo in cui un utente ( o un programma di assistenza come uno screen reader) dovrebbe reagire quando ne incontra uno.

Se tutto ciò che stai cercando di fare è richiamare l'attenzione dell'utente su alcune voci di menu che sono di particolare interesse - beh, sembra un po 'strano, ma sembra anche abbastanza innocente, e sarei sorpreso se ti ha causato enormi problemi lungo la strada. Tutto è possibile, ovviamente! Tuttavia, mi chiedo cosa stavi facendo esattamente.

Se stai tentando di esporre parte dello stato del tuo programma con voci di menu in grassetto e non piegate, mi sembra un po 'inaspettato, ma odio giudicare prima di ascoltare le specifiche.

Se hai in mente qualche altro obiettivo - come forse pensi che il carattere predefinito per i menu sia brutto e ti piace di più quando tutto è in grassetto - allora il metodo che hai scoperto potrebbe essere utile, ma potrebbe anche esserci essere un modo migliore per ottenere esattamente quello che vuoi, di cui potremmo discutere più in dettaglio (forse in una domanda separata) se tu fossi disposto. Dubito che sia così, ma chi lo sa?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top