7 ms·
Problem: It is extremely hard to stylize native Win32 controls. That's not a problem, it's a feature. I am absolutely bloody sick of apps that go out of their
by userbinator 2y ago
Problem: It is extremely hard to stylize native Win32 controls.
That's not a problem, it's a feature. I am absolutely bloody sick of apps that go out of their way to reinvent the standard UI controls in perplexing ways and behave unexpectedly. Following the system UI preferences is what you should do, and it irritates your users if you don't.
There is a “hidden” dark mode for Win32 controls used by Windows File Explorer that you can activate, but it covers only some of the controls and still doesn’t look good.
Don't do that. If you use the regular Win32 controls then they will automatically get the styling the user has set.
I've been writing Win32 apps for close to 30 years now. It's sad to see the regression in UIs over the years.
- crazygringo 2y agoAs a non-Windows user, I'm confused, maybe you can clarify: > If you use the regular Win32 controls then they will automatically get the styling the user has set. Does that mean they'll get dark mode if the system is in dark mode? In which case I don't understand what the author is complaining about. Sounds like dark mode would be working as intended. They want "easy styling" but I took that to mean things like icons, some colors, etc. Not totally replacing what buttons look like. I agree -- being consistent with the OS is a good thing.
- userbinator 2y agoThey'll get dark, light, rainbow, whatever the user has set. This was a feature since at least Windows 3: https://news.ycombinator.com/item?id=25871787 https://news.ycombinator.com/item?id=25871787
- Rohansi 2y agoI don't think this actually reflects the new light/dark mode people are referring to here. It will most likely always be the default theme - light. Also changing those old themes has a good chance to "break" any (poorly made) apps doing their own themes. You could change some colors in the palette and parts of the UI could end up being difficult or impossible to read. Happens if the app uses a combination of palette controlled colors and custom colors.
- mrpippy 2y agoCorrect. For Win32 apps, the only official support for dark mode is some WinRT APIs to tell if it’s enabled, so you can “adjust your application's painting and rendering code to use a Dark mode color set” https://learn.microsoft.com/en-us/windows/apps/desktop/modernize/apply-windows-themes https://learn.microsoft.com/en-us/windows/apps/desktop/moder...
- ack_complete 2y ago> Also changing those old themes has a good chance to "break" any (poorly made) apps doing their own themes. They already do this. COLOR_3DFACE has gotten brighter with each successive version of Windows and in Windows 11 is #F0F0F0. I've had to fix UIs that became unreadable as a result.
- jenscow 2y agoThose colour settings are not aware of Windows 11's "Dark mode"
- userbinator 2y agoNot surprising. Typical "modern" Microsoft. Reinventing things poorly is so common these days.
- abareplace 2y agoNo, they won't get dark mode and this is the biggest problem for Win32 UIs now. If Microsoft would make dark mode available for classic Win32 apps, it would meet all requirements of the original poster.
- EvanAnderson 2y ago> That's not a problem, it's a feature. 1000 times this. I want software I'm running to look like the rest of the OS (and every other application) and respect my OS-level UI preferences. In the case of Win32 using the OS primitive controls mean that your application gets tons of accessibility and preference features "for free" (albeit Microsoft has done a good job in later Windows releases of removing the functionality to set some of these preferences). There is no value add in making your app UI look bespoke. All the labor you're putting into that work is labor that could be better spent on functionality, features, and optimization. When I see an overly "precious" UI on Windows (owner-drawn controls, animations, fades, etc) I immediately question the ability of the developer to prioritize.
- jenadine 2y agoYou seem to be in the minority with that thought. The evidence is that most apps nowadays comes with their own style, often packed in a HTML frontend. Users are used of websites which all have their own designs, and don't seem to mind if all apps have different look and feel.
- userbinator 2y agoMost users have just developed a learned helplessness. It doesn't mean they don't like it.
- surfingdino 2y agoDevs that learned web frontend dev are not familiar with OS GUI guidelines. When I tell them Apple used to publish GUI guidelines for Mac application developers they stare at me in disbelief.
- analog31 2y agoMost users are unaware that there are UI standards, and have no basis for comparison. They use Google to help them figure out how to use apps, and take hand-written notes on how to find the things that they need. Once they figure out the functions in an UI that they need, they just pray that it doesn't change. The average user experience is horrific.
- ricopags 2y agoNever coded a GUI app but speaking of regressions: As a heavy windows KB user, losing the ability to alt+letter all the things to /quickly/ navigate windows apps is incredibly frustrating. I've read that Mac OS envy infiltrated the WinUI time and while some may prefer the aesthetics, on Windows 11 apps like mspaint I can no longer navigate anywhere near as quickly. From milliseconds to multiple seconds. I'm incensed at this change personally, and I feel totally confused by it from the perspective of MS. In the era of AI and automation, slower screen draw times will make a significant impact to performance and energy use. I hope someone like Mark Russinovich, Kevin Scott, or Satya Nadella will notice and change course.
- hobs 2y agoIt's funny that you mentioned apple because their system shortcuts are integrated as hell and they even let you map them in the OS -> App level, way better than anything MS has ever shipped.
- jwells89 2y agoYep, among other things both Apple-unique and emacs-esque text navigation shortcuts are in every native textfield across all apps and anything that's a menu item in any app can have its shortcut key rebound in System Settings without any extra work on the part of third-party devs. It's one of the reasons why longtime Mac users are disinclined towards non-native apps. Most don't bother to reproduce these behaviors, and so when you as a user go to reach for these features that you have muscle memory for and they're not there, it's like hitting a brick wall in the middle of your workflow and makes the app in question feel basic and unrefined.
- Hamuko 2y agoAnnoyingly enough you don't really all keyboard shortcuts out of the box even if you build natively. If you create a Button(role: .destructive).keyboardShortcut(.defaultAction) in a SwiftUI dialog, you don't get Cmd+D as the shortcut even though Finder (and I think other apps too) uses Cmd+D as the keyboard shortcut for destructive confirmation dialogs. Thankfully at least a Button without destructive role will get Enter as its keyboard shortcut in the same context.
- serial_dev 2y agoAs a mobile dev, it should be the same for mobile apps? If you are on iOS, you could just use what Apple gives you with very little customizations. The app would feel right, dark mode, font sizes, screen traders, etc. accessibility would "just work" 98% of the time, the app would be fast. On Android, things are a tad bit more complicated, but it still applies that the closer you are to the OS, the better things work out of the box. But for some reason, companies, their designers, product owners, developers want to get creative, use their brand but eventually they always run out of time to implement things properly, so apps are slow, user's font scale settings are not respected, dark mode is a feature, and the app doesn't feel like part of the same phone / OS.
- MaxBarraclough 2y agoThey also often want to use web technologies and/or cross-platform GUI toolkits, to avoid reimplementing their UIs.
- eschaton 2y agoAnd all because they fundamentally believe that their development time and expense is worth way more than their customer’s time and expense.
- skydhash 2y agoI strongly believe that the amount of ironing they have to do for that crossplatform toolkit takes more time than just going with a common core and different UI shells.
- MaxBarraclough 2y agoNetflix took this to an extreme, apparently porting WebKit to the PS3 just to power their app's UI. With apologies for linking to such an appallingly spammy website, as I couldn't find a better one: https://www.engadget.com/2010-12-07-netflix-ported-webkit-to-the-ps3-to-enable-html5-goodies-a-dyna.html https://www.engadget.com/2010-12-07-netflix-ported-webkit-to...
- Sakos 2y agoIt's even worse. > Those were only a few options that I considered. After a very long time trying out all sorts of different libraries and at one point even writing my own MFC styles, I figured out that for simple apps there is simply nothing better suited than Dear ImGui. They decided to go with the option that deviates the most from the standard Windows UI, where there are no native controls at all, and it's a nightmare for accessibility (see https://github.com/ocornut/imgui/issues/4122 https://github.com/ocornut/imgui/issues/4122). I use it for prototyping privately, but I'd never make anything I want to release into the world with it.
- TheChaplain 2y agoLife was good with Windows 2000, GTK2 and MacOS9, styling was clear and had purpose. GTK and MacOS even had extensive Human Interface Guide documentation.
- withinrafael 2y agoThe problem with this hands off approach is that Microsoft has not updated its base controls and does not provide some capabilities out of the box. It instead only offers modern controls via its Win UI 3 framework, which is squarely designed for C#.
- troupo 2y agoI don't know what the situation is right now, but for the longest time ever standard win32 controls where even less useful and more anemic than even the standard web controls. There was always a disparity between what the OS gave you and what the actual good controls MS Office team would think of (until ribbon, but the original ribbon actually did have a lot of thought put into it).
- leapingdog 2y agoI agree with you. > Easy styling, including dark mode I wonder if this requirement has been imposed from above. When the web was taking off I received designs from the UI architect in the form of VB6 applications. Windows was the dominant platform at the time. Never mind it made no sense in the context of more fluid HTML layouts. This was before CSS. Since then the web has probably trained the holders of the reins that they can violate user interface norms everywhere.