2015-10-23 7 views
5

La struttura INITCOMMONCONTROLSEXdocumentation citare:Un "BUTTON" è un controllo comune?

ICC_STANDARD_CLASSES

carico una delle classi di controllo User32 intrinseche. L'utente controlla include pulsante, modifica, statico, casella di riepilogo, casella combinata e barra di scorrimento.

Non capisco cosa significhi, sono "pulsanti, modifica, statico, casella di riepilogo, casella combinata" considerati controlli comuni ?!


credo che la spiegazione di questo è la seguente:

Ci sono due versioni di questi controlli, una versione risiede in user32.dll, e l'altra versione risiede è in comctl32.dll, ora quando uso Visual Styles (aggiungendo un file manifest al mio programma), la versione utilizzata sarà quella di comctl32.dll e, se ho usato Visual Styles, dovrei chiamare InitCommonControlsEx() con ICC_STANDARD_CLASSES.

È corretto?

risposta

3

Indietro ai vecchi tempi, prima dei temi XP, veniva fatta una distinzione tra i controlli user32 standard di base. Il pulsante, modifica, statico, casella di riepilogo e casella combinata. Nelle prime versioni di Windows questo era tutto ciò che c'era.

Successivamente sono arrivati ​​i controlli comuni. La vista elenco, la vista ad albero, la barra degli strumenti, la barra di stato, la barra di avanzamento, il selettore di data e così via. Dovevi chiamare InitCommonControls per inizializzare questi controlli.

Con l'avvento dei temi XP, ora è necessario chiamare InitCommonControlsEx per registrare tutti i controlli, anche i controlli standard come pulsante, modifica e così via. Ma non li considero controlli comuni. Per me c'è la distinzione tra i controlli di base, il pulsante, la modifica e così via, i controlli comuni, la visualizzazione elenco, la visualizzazione ad albero, ecc. Tuttavia non è una distinzione importante. Non devi davvero preoccuparti per questo.

+0

Quindi ho bisogno di chiamare 'InitCommonControlsEx()' con 'ICC_STANDARD_CLASSES' per usare" pulsante, modifica, static, listbox, combobox "? Ho usato questi comandi senza chiamare 'InitCommonControlsEx()' per molto tempo, c'è qualcosa di sbagliato in questo? – James

+0

Per i temi XP si intende richiamare 'InitCommonControlsEx' anche per i controlli standard, almeno in base ai documenti. –

+0

Lettura di bonus: [La cronologia dei controlli comuni di Windows XP] (http://blogs.msdn.com/b/oldnewthing/archive/2008/01/29/7294949.aspx). – IInspectable