HeaderPane
Main
Hide

SftTabs/DLL 7.0 Documentation

Share Link
Print

Upgrading to Version 7.0

Only a minimal conversion is required when upgrading from an earlier version of SftTabs/DLL to SftTabs/DLL 7.0. SftTabs/DLL 7.0 is virtually 100% source compatible with SftTabs/DLL 6.5. Your application(s) must be recompiled to use SftTabs/DLL 7.0.

SftTabs/DLL 7.0 and an older version of SftTabs/DLL can coexist in the same application to make the conversion as easy as possible, however, they cannot be used in the same source code file.

Upgrading to Version 7.0

Even though SftTabs/DLL 7.0 is not completely upward compatible, the conversion effort is very minimal. Some structures used in earlier releases of SftTabs have been increased in size, resulting in the requirement to recompile your source code. To allow for SftTabs/DLL 6.5 and this new version to coexist when used by multiple applications, the DLLs have been renamed and a new window class is used.

SftTabs/DLL 7.0 is source code compatible with older releases of SftTabs/DLL, provided the following changes are made in existing applications:

Converting an Existing Application

The conversion effort to implement SftTabs/DLL 7.0 in an application that currently uses version 6.5 is minimal. Most applications will only have to change the window class name used in DIALOG resources (see below).

1. Window Class Change

In SftTabs/DLL 6.5 (the release prior to SftTabs/DLL 7.0), the window class used for SftTabs was SftTabsControl65. This window class has been dropped and has been renamed to SftTabsControl70.

Any DIALOG resources that use the old window classes must be changed to use SftTabsControl70. Without this change, the dialogs will not be displayed.

If the window class name was "hard-coded" in calls to Create or CreateWindow(Ex), the class name must also be changed. The preferred method is to use the preprocessor symbol SFTTABS_CLASS.

2. Dll And Lib Files Name Change

The Dlls and Lib files have been renamed for this new release. For the new file names, please see the section "Building Applications".

3. SFTTABS_CONTROL, New Members, Initialization

In order to use new features, SetVersion must be called with the new version indicator SFTTABS_7_0. Once the new version is activated in your source code, the new members found in the SFTTABS_CONTROL structure must be initialized. If SetVersion is called with an earlier version indicator, these fields need not be initialized. New tab control features will however not be available.

MemberSuggested Initialization Value
new in 7.0
nDarkModeSFTTABS_DARKMODE_AUTO (2) - follow the Windows "Choose your mode" setting; set to SFTTABS_DARKMODE_OFF (0) to preserve pre-modernization behavior
nHighContrastModeSFTTABS_HIGHCONTRAST_AUTO (2) - follow the Windows High Contrast accessibility setting; set to SFTTABS_HIGHCONTRAST_OFF (0) to preserve pre-modernization behavior
imageScalingSFTTABS_IMAGESCALING_ASIS (0) - back-compat default; set to SFTTABS_IMAGESCALING_STRETCH (1) to auto-scale all images by currentDPI/96
pixelScalingSFTTABS_PIXELSCALING_ASIS (0) - back-compat default; set to SFTTABS_PIXELSCALING_STRETCH (1) to treat caller-supplied dimensions as 96-DPI reference values

By using the suggested initialization values, the tab control will continue to operate as in earlier versions.

5. Dll And Lib Files Name Change

The Dlls and Lib files have been renamed for this new release. For the new file names, please see the section "Building Applications".

When linking statically, the library Gdiplus.lib must be added to the linker project settings (see the section "Building Applications").

What's New in 7.0

SftTabs/DLL 7.0 adds four major accessibility and rendering features that are enabled automatically on existing controls with no API changes required. Each has a dedicated guide:

Existing applications inherit the new accessibility and Per-Monitor DPI behavior by simply recompiling against the 7.0 headers and libraries, provided the new SFTTABS_CONTROL members are initialized appropriately (see the initialization table in section 3 above). To also scale caller-supplied images and pixel dimensions automatically, one-line opt-in calls are available - see SetImageScaling and SetPixelScaling.


Last Updated 04/22/2026 - (email)
© 2026 Softel vdm, Inc.