SetWindowLong (coredll)
Last changed: -84.45.5.97

.
Summary

C# Signature:

[DllImport("Coredll.dll", SetLastError=true)]
private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
[DllImport("Coredll.dll", SetLastError=true)]
private static extern int GetWindowLong(IntPtr hWnd, int nIndex);

VB Signature:

<DllImport("Coredll.dll"SetLastError=True)> _
Private Shared Function SetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer, ByVal dwNewLong As Integer) As Integer
<DllImport("Coredll.dll"SetLastError=True)> _
Private Shared Function GetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer) As Integer

User-Defined Types:

None.

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

    private const int GWL_STYLE = -16;
    private const int BS_CENTER = 0x00000300;
    private const int BS_VCENTER = 0x00000C00;
    private const int BS_MULTILINE = 0x00002000;

    public static void SetButtonStyle(Button ctrl)
    {
        IntPtr hWnd;
        int style;

        ctrl.Capture = true;
        hWnd = GetCapture();
        ctrl.Capture = false;

        style = GetWindowLong(hWnd, GWL_STYLE);
        SetWindowLong(hWnd, GWL_STYLE, (style | BS_CENTER | BS_VCENTER | BS_MULTILINE));

        ctrl.Refresh();
    }

Documentation