Re: COMCTL32 controls versions

From: Charles Mélice <3d_at_forthcad.com>
Date: Mon, 3 May 2010 08:07:38 +0200

Hi Douglas,

>The main aspect of the question is how to instruct SwiftForth to use =
the
>newer versions.
>Ideally, also to have a mechanism by which old or new could be selected
>using some sort of directive at the start of a programme.

To enable theme, a manifest file have to be embedded inside the .exe
application. (see previous post).

It is possible to disable theme control by control, using the next trick
(again, in C++).

Charles

// Disable combobox XP Theme

typedef WINAPI SetWindowTheme_FUNC(HWND hwnd, LPCWSTR pszSubAppName, =
LPCWSTR
pszSubIdList);

void DisableCtrlTheme(HWND hwnd)
{
    SetWindowTheme_FUNC *pSetWindowTheme;
    bool notxp=3Dfalse;
    if (notxp) return;

    HINSTANCE hTmLib =3D LoadLibrary (TEXT("UxTheme.DLL"));
    if (!hTmLib)
    {
        notxp=3Dtrue; // have old ComCtl
        return;
    }
    // Initlialize the function pointer.
    pSetWindowTheme =3D GetProcAddress (hTmLib, "SetWindowTheme");
   =20
if (!pSetWindowTheme)
    {
        notxp=3Dtrue;
    }
    else
    {
        (*pSetWindowTheme)(hwnd, L" ", L" ");
    }

    FreeLibrary(hTmLib);
}

// Usage example, disable theme for the listbox ID=3D IDC_CB_LIST

BOOL OnInitDialog(HWND hDlg)
{
    DisableTheme(GetDlgItem(IDC_CB_LIST));

        ....

}

-----Message d'origine-----
De=A0: sftalk-bounce_at_forth.com [mailto:sftalk-bounce_at_forth.com] De la =
part de
Douglas Reid
Envoy=E9=A0: lundi 3 mai 2010 07:23
=C0=A0: sftalk_at_forth.com
Objet=A0: [sftalk] Re: COMCTL32 controls versions

Charles,
One aspect of my posting may be somewhat confusing.

It is not strictly accurate to be talking about "version 5" and "version =
6"
controls as if they originate from the corresponding versions of
COMCTL32.DLL
Rather, the "version 5" (if we can call them that) originate instead =
from
USER32.DLL

The original version of controls (button, edit, static, listbox, =
combobox
and scrollbar) are in USER32.DLL
It seems that SwiftForth are using these.

From v6.00 of COMCTL32.DLL updated/ enhanced/ new "XP style" versions of
these controls with the same names were provided in COMCTL32.DLL =
intended to
supercede those provided in USER32.DLL

The main aspect of the question is how to instruct SwiftForth to use the
newer versions.
Ideally, also to have a mechanism by which old or new could be selected
using some sort of directive at the start of a programme.

Best Regards,
Douglas

> Hi Douglas,

> I don't think it is possible to select between version 5 or 6.
> A standard Windows installation have only one COMCTL32.DLL dll.

> IMHO You have just to know the version you have and play with it.

> With best regards,
> Charles

----------------------------------------------------------------------
sftalk_at_forth.com The SwiftForth programming discussion email list
To unsubscribe, send subject "unsubscribe" to sftalk-request_at_forth.com
For list command help, send subject "help" to sftalk-request_at_forth.com
Message archives are located at http://www.forth.com/archive/sftalk
----------------------------------------------------------------------
This list is a forum for SwiftForth users. For product support and
bug reports, please send email to support_at_forth.com
----------------------------------------------------------------------

----------------------------------------------------------------------
sftalk_at_forth.com The SwiftForth programming discussion email list
To unsubscribe, send subject "unsubscribe" to sftalk-request_at_forth.com
For list command help, send subject "help" to sftalk-request_at_forth.com
Message archives are located at http://www.forth.com/archive/sftalk
----------------------------------------------------------------------
This list is a forum for SwiftForth users. For product support and
bug reports, please send email to support_at_forth.com
----------------------------------------------------------------------
Received on Sun May 02 2010 - 23:07:55 PDT


Subscribe to our e-mail list service. It's free for all SwiftForth and SwiftX users!

This archive was generated 06-Feb-2012. Archive updated nightly.