Start
Application Theming
Application Theming

Application Theming

This guide helps you give your applications a more classic feel.

Ripcord

Ripcord is an unofficial Discord client built with QT. By default it has a different theme and does not use Windows controls. This can be changed by setting RIPCORD_STYLE_ENGINE to windows as environment variable.

To achieve this, follow these steps:

  1. Open System Properties (the quickest way is to run sysdm.cpl or SystemPropertiesAdvanced in the run box)

  2. In the “Advanced” tab, click on Environment Variables….

  3. Add the environment variable by clicking on New… inside one of the group boxes (preferably the one for user variables). Then type RIPCORD_STYLE_ENGINE as “Variable name” and windows as “Variable value”, then click on OK.

  4. Restart Ripcord and done!

    A picture of Ripcord running with classic Windows borders

Windows Explorer

The Windows Explorer has changed over the years, changing layout and gaining features, making it harder to change back, there are some ways around it though, explained here:

Removing the navigation bar

Since Windows Vista, Microsoft does not provide convenient means to remove or hide the Navigation Bar. The Navigation Bar is the bar that includes the navigation buttons (forward, back), the address bar and the search bar.

With Classic Theme

Download the AutoHotkey script below: Download

Without Classic Theme

Open the .msstyles file for the theme you are using with Windows Style Builder.

Now set Toolbars, Headers and Rebar > Rebar > NavBar > Basic > Base > Band to CONTENTMARGINS:MARGIN (0, 0, 0, -33).

Save it and apply.

32px icons with labels

Feature / Method Desktop Mode AutoHotKey
Applies to Normal folders (i.e. filesystem folders) All folders (including special ones)
Icon Arrangement Not remembered Remembered
Grouping Doesn't work Works
Labels when changing view The labels become below immediately, no need to reopen folder The labels are not below until the folder window reopened
Label delay When opening a folder, the icons are 32px with labels below instantly Small delay after opening the folder: initially the labels are to the right, but then become below

Classic toolbar borders

Download the AutoHotkey script below: Download

Windows Explorer (Shell)

Customizing desktop icon labels

You can use Iconoid to customize the appearance of the icon labels (text color and background). It has more features like a “Show desktop” hot corner, saving desktop layout and rearranging your icons.

Screenshot of Iconoid

Your own application

Adding support for Classic Theme in your own application is very easy to do. You just need to be sure that your application doesn’t rely on any visual styles from DWM and/or UxTheme. Here are the code examples:

C# application wide:

[DllImport("uxtheme.dll", CharSet = CharSet.Auto)]
public static extern void SetThemeAppProperties(int Flags);

public static void DisableVisualStyles()
{
    // 0 means no flags are set so nothing will be themed
    SetThemeAppProperties(0);
}

C/C++ application wide:

#include <windows.h>

void DisableVisualStyles()
{
    // 0 means no flags are set so nothing will be themed
    SetThemeAppProperties(NULL);
}

C# per-window:

[DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
public static extern void SetWindowTheme(IntPtr hWnd, string pszSubAppName, string pszSubIdList);

// You can get an IntPtr from a Form using Form.Handle
public static void DisableVisualStylesForWindow(IntPtr hWnd)
{
    // Empty means that no theme will be applied
    SetWindowTheme(hWnd, " ", " ");
}

C/C++ per-window:

#include <windows.h>

void DisableVisualStylesForWindow(HWND hWnd)
{
    // Empty means that no theme will be applied
    SetWindowTheme(hWnd, L" ", L" ");
}