Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is a "BUTTON" a common control?

Tags:

c

winapi

The INITCOMMONCONTROLSEX structure documentation mention the following:

ICC_STANDARD_CLASSES

Load one of the intrinsic User32 control classes. The user controls include button, edit, static, listbox, combobox, and scroll bar.

I don't understand what this means, are the "button, edit, static, listbox, combobox" considered to be common controls?!


I think the explanation for this is the following:

There are two versions of these controls, one version resides in user32.dll, and the other version resides is in comctl32.dll, now when I use Visual Styles (by adding a manifest file to my program), the version used will be that of comctl32.dll, and if I used Visual Styles then I should call InitCommonControlsEx() with ICC_STANDARD_CLASSES.

Is this correct?

like image 517
James Avatar asked Oct 19 '22 23:10

James


1 Answers

Back in the old days, before XP themes, a distinction was drawn between the standard, basic user32 controls. The button, edit, static, list box and combo box. Back in early versions of Windows this was all there was.

Later on the common controls came along. The list view, tree view, toolbar, status bar, progress bar, date time picker and so on. You had to call InitCommonControls to initialize these controls.

With the advent of XP themes, you now have to call InitCommonControlsEx to register all controls, even the standard controls like button, edit and so on. But I don't consider them to be common controls. To me there's the distinction between the basic controls, the button, edit and so on, and the common controls, list view, tree view etc. It's not really an important distinction though. You don't really need to worry about it.

like image 168
David Heffernan Avatar answered Oct 21 '22 16:10

David Heffernan