The standard Windows button does one thing, one way. That's fine, until your application needs a button that carries an icon and a label, fills with a gradient on hover, drops down a menu, matches your brand, and still reads perfectly for a screen reader. SftButton/DLL is that button. It's a DLL-based control for the Windows™ operating system that fully replaces the standard push button, check box, and dropdown button — with none of the limits and all of the polish.
From a plain text-only button to a fully themed, gradient-filled control with multi-state images and an attached dropdown arrow, SftButton/DLL lets you design exactly the button your interface calls for. Built for C and C++ (MFC) developers, version 3.0 brings richer imagery, modern Windows integration, and support for today's development workflows.
SftButton/DLL treats appearance as something you shape, not something you accept. Choose from three border styles — thin, standard, or single-pixel — and fill the background with a solid color or a gradient, defined independently for each state: normal, focus, and hover. Layer in the imagery: two overlaid image layers plus independent background pictures, each carrying its own artwork for normal, hover, pressed, and disabled states. Every image flows through the flexible SFT_PICTURE model, so bitmaps, icons, image lists, and full GDI+ graphics all work seamlessly.
Text is just as expressive. The SFT_TEXT model drives rich single- or multi-line labels with per-state colors for normal, pressed, and disabled, plus selectable horizontal alignment and vertical positioning. Prefer to let the system lead? Themes support comes in full or theme-without-text flavors, so your buttons can look native or branded, whichever you need.
A button's job goes well beyond a single click. SftButton/DLL delivers push-button, toggle (check box), and dropdown-button behavior from one control, and the optional dropdown arrow comes in four styles — standard, three narrow widths, and a wide variant — each firing its own click and double-click notifications separate from the button itself. Beyond the standard click, you also get right-click, middle-click, and double-click notifications, opening the door to context menus and richer interactions.
The details are yours to tune. Configurable hit-testing lets you decide what's clickable — the entire control, the exact image-plus-text bounds, images only, or text only. Hover detection works at the control level or pixel-exact. An optional "bounce" press animation adds tactile feedback, with per-control override. And focus-ring control plus default-button styling keep everything consistent with the rest of your dialog. Anchor-based auto-sizing snaps buttons to any of nine window positions — corners, edges, or center — so layouts hold together as windows resize.
The SftButton/DLL Wizard lets you design and test a button without any programming at all. Set the text, colors, borders, dropdown arrow, images, and more, watch the result take shape, and — once it looks exactly right — let the Wizard generate the run-time code for C or C++ with MFC. The path from idea to working button is measured in clicks, and your programming effort is kept to a minimum.
Version 3.0 is built for how Windows looks and works today. It automatically tracks the system "Choose your mode" setting for seamless dark mode, supports Windows High Contrast for accessibility, and is Per-Monitor v2 DPI aware, scaling images and pixel dimensions automatically so buttons stay crisp on every display. A built-in UI Automation provider delivers screen-reader support for Narrator, NVDA, and JAWS right out of the box.
SftButton/DLL is a complete, ground-up implementation — not a sub- or superclassed Windows control — so its behavior is consistent and free of inherited quirks. Develop in C or C++ (MFC) with Visual Studio, or call the DLL from other languages using the standard SendMessage Windows API and the definitions in the supplied header file. Class definitions for the Microsoft Foundation Class Library ship in the box, and so does the source code for the MFC classes that provide button-control access.
New in 3.0, SftButton/DLL ships with documentation formatted for AI coding assistants — an offline, full-text API reference built for large-language-model grounding, plus an AGENTS.md pointer file — so assistants such as Claude, GitHub Copilot, and Cursor can answer questions and generate code against the complete API.
SftButton/DLL supports Windows 10 and above, covering 64-bit and 32-bit applications on Intel processors, plus ARM64 applications on Windows 11 and above. UNICODE support is available on every platform, and the same easy-to-use API works identically across all of them — write once, deploy everywhere your users are.
Ship with confidence. Any application you develop can use SftButton/DLL royalty-free in run-time mode — you simply distribute the DLL with your application (some restrictions apply). Design-time features live with each developer: every developer who needs access to any part of the product licenses their own copy, with no per-user or per-copy fees on the software you deliver to your customers.
SftButton/DLL 3.0 — because a button should look like yours, not like everyone's.