How do I enable visual styles?
Jack
jckj33 at gmail.com
Fri Feb 19 01:46:59 UTC 2021
if someone happens to be looking to do that in the future: I
didn't find a way to do this with a linker but managed to find a
way to do this with code only. The code goes like this:
// source: https://stackoverflow.com/a/10444161/800123
#include <windows.h>
// NOTE: It is recommended that you delay-load ComCtl32.dll
(/DelayLoad:ComCtl32.dll)
// and that you ensure this code runs before GUI components are
loaded.
// Otherwise, you may get weird issues, like black backgrounds in
icons in image lists.
ULONG_PTR EnableVisualStyles(VOID)
{
TCHAR dir[MAX_PATH];
ULONG_PTR ulpActivationCookie = FALSE;
ACTCTX actCtx =
{
sizeof(actCtx),
ACTCTX_FLAG_RESOURCE_NAME_VALID
| ACTCTX_FLAG_SET_PROCESS_DEFAULT
| ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID,
TEXT("shell32.dll"), 0, 0, dir, (LPCTSTR)124
};
UINT cch = GetSystemDirectory(dir, sizeof(dir) /
sizeof(*dir));
if (cch >= sizeof(dir) / sizeof(*dir)) { return FALSE;
/*shouldn't happen*/ }
dir[cch] = TEXT('\0');
ActivateActCtx(CreateActCtx(&actCtx), &ulpActivationCookie);
return ulpActivationCookie;
}
it's C as code but can be translated to D easy.
More information about the Digitalmars-d-learn
mailing list