2015-10-23 12 views
5

Struktura INITCOMMONCONTROLSEXdocumentation wymienić następujące:Czy "BUTTON" jest wspólną kontrolą?

ICC_STANDARD_CLASSES

Załaduj jeden z nieodłącznych klas kontrolnych User32. Elementy sterujące użytkownika obejmują przycisk, edytuj, statyczny, listbox, combobox i pasek przewijania.

Nie rozumiem, co to oznacza, czy "przycisk, edycja, statystyka, lista pól, combobox" są uważane za typowe elementy sterujące ?!


Myślę, że wyjaśnienie jest następujące:

Istnieją dwie wersje tych kontroli, jedna wersja rezyduje w user32.dll, a druga wersja znajduje się w pliku COMCTL32.DLL, teraz kiedy używam Visual Styles (przez dodanie pliku manifestu do mojego programu), używana wersja to comctl32.dll, a jeśli używałam Visual Styles to powinienem zadzwonić pod numer InitCommonControlsEx() z ICC_STANDARD_CLASSES.

Czy to prawda?

Odpowiedz

3

W dawnych czasach, przed motywami XP, rozróżniano standardowe, podstawowe kontrolki user32. Przycisk, edycja, statyczne, pole listy i pole kombi. Powrót we wczesnych wersjach systemu Windows to było wszystko, co było.

Później pojawiły się standardowe kontrole. Widok listy, widok drzewa, pasek narzędzi, pasek stanu, pasek postępu, selektor daty i tak dalej. Aby zainicjować te formanty, trzeba było zadzwonić pod numer InitCommonControls.

Po pojawieniu się motywów XP, musisz teraz zadzwonić pod numer InitCommonControlsEx, aby zarejestrować wszystkie kontrolki, nawet standardowe elementy sterujące, takie jak przycisk, edycja itd. Ale nie uważam ich za powszechną kontrolę. Dla mnie istnieje rozróżnienie między podstawowymi elementami sterującymi, przyciskiem, edycją itd. Oraz typowymi elementami sterującymi, widokiem listy, widokiem drzewa itp. Nie jest to jednak ważne rozróżnienie. Naprawdę nie musisz się tym martwić.

+0

Muszę więc wywołać 'InitCommonControlsEx()' z 'ICC_STANDARD_CLASSES' aby użyć" button, edit, static, listbox, combobox "? Używam tych formantów bez wywoływania 'InitCommonControlsEx()' przez długi czas, czy jest coś z tym nie tak? – James

+0

Dla motywów XP masz nazywać 'InitCommonControlsEx' nawet dla standardowych kontrolek, przynajmniej zgodnie z dokumentami. –

+0

Odczyt premiowy: [Historia wspólnych elementów sterujących systemu Windows XP] (http://blogs.msdn.com/b/oldnewthing/archive/2008/01/29/7294949.aspx). – IInspectable

Powiązane problemy