You could also go for wxWidgets as it is kinda MFC-y but better and cross-platform, though like MFC you can combine it with Win32 API code (almost) seamlessly.
Or go with Qt, though that doesn't use native controls.
You could also go for wxWidgets as it is kinda MFC-y but better and cross-platform, though like MFC you can combine it with Win32 API code (almost) seamlessly.
Or go with Qt, though that doesn't use native controls.
QT uses native controls/widgets, it just polyfills when there is no good native option or if you use custom styling.
No, it implements its own functionality. As an example consider one of the most basic controls which is available pretty much everywhere (i.e. no need for polyfill), the push button: the source code[0] for QPushButton clearly implements the behavior itself, it does not rely on any native button.
Compare with wxWidgets' equivalent to QPushButton, wxButton, where there is a backend-specific header[1] and implementation[2] where 99% of the wxButton functionality is there (there is a `btncmn.cpp` under `common` that is shared across backends but that has very little code itself).
[0] https://github.com/qt/qtbase/blob/dev/src/widgets/widgets/qp...
[1] https://github.com/wxWidgets/wxWidgets/blob/master/include/w...
[2] https://github.com/wxWidgets/wxWidgets/blob/master/src/msw/b...
I don't even need to dig through the paint loop. I've written QT software, and you can do it yourself.
Add a QButton with no styling, you will have a standard button widget in macOS and Windows (or a KDE styled one in Linux). Now have an event that modifies the button in some way (adding a CSS style to it is common, but also changing the sizing manually will usually do it) and the style of the button will immediately change to a QT-style one. The difference is so obvious in Windows and macOS, that it would be laughable to claim otherwise; but you can also just ask the QT Group devs or the community, they've reiterated/experienced this behavior plenty of times.