Skip to content
Tech News
← Back to articles

Direct Win32 API, Weird-Shaped Windows, and Why They Mostly Disappeared

read original get Win32 API Programming Book → more articles
Why This Matters

This article highlights the decline of Win32 API programming and the shift towards web-based wrappers for Windows applications, leading to increased bloat and loss of UI creativity. It underscores the importance of traditional, optimized Win32 development for performance and unique user interfaces, reminding the industry of the value of control and identity in app design.

Key Takeaways

I’m fed up with generic looking apps. Today, all Windows desktop apps look the same as they are the same; they are all built on crap React, Electron, electronbun, and Tauri browser wrappers that mimic the real Desktop apps. They run slow, take a shit load of memory, basically bloatware. Notepad is a freaking basic NOTE taking app, not a Word replacement, calculator is a calculator, not a NASA moon mission planner. Somewhere along the way, Microsoft has lost the plot. It’s like they have given up and gave the reins to a bunch of web developers who have no concept of optimization.

A freaking notepad app takes almost 50mb in memory when equivalent NOTEPAD done in pure Win32 C takes 1.8mb of memory. It doesn’t look like 50mb is that much in today’s world, but that’s the point, mb by mb it all adds up. I recently got a brand new Intel Ultra 9 285 with 32 GB of RAM, and it’s freaking memory is 77% full when freaking Windows 11 starts up.

Programming with Win32 API is a lost art now, and I look longingly at how Windows apps were once programmed. It was messy, but it gave you complete control.

Most modern UI programming tries to hide the operating system from you. You are stuck with a rectangular box while there was a period in the Windows XP era when it was cool to have non standard application window, even Windows Media Player had it.

Not everything had to be a bland, rounded rectangle with a sidebar, a settings cog, and a web stack squatting underneath it. There was a period when Windows apps were allowed to look strange. Media players looked like hardware. Desktop mascots walked around your screen. Utility panels looked like dashboards, toys, radios, or little alien control consoles. A window did not have to be a rectangle just because the operating system started you with one.

The point was usually not usability. It was identity.

That is the part modern desktop UI mostly lost. Not because Windows cannot do it anymore, but because most people no longer program at the level where the window itself is something they control.

The GitHub repository of this post is a small reminder that Win32 still lets you do exactly that. One example makes a window elliptical. Another shapes it from a bitmap. The third turns the whole thing into an animated desktop mascot. None of it requires a giant framework. It just requires dealing with Windows directly.

The first thing that confuses people if they come from games, browsers, or modern UI frameworks is that Win32 does not revolve around an update loop you own. It revolves around messages. Your app sits there, and Windows keeps handing it events:

while (GetMessage(&msg, NULL, 0, 0) > 0) {

... continue reading